標籤:枚舉
枚舉。
又是一期檢測題。又是只能做水題。唉。為毛老是選這種邀請賽的題。
枚舉一下 H 點 和 C 點就行了。
#include<cstdio>#include<cstring>#include<string>#include<queue>#include<algorithm>#include<map>#include<stack>#include<iostream>#include<list>#include<set>#include<cmath>#define INF 0x7fffffff#define eps 1e-6#define LL long longusing namespace std;int n,m;struct lx{ int x,y;};lx C[41*41],H[41*41];int main(){ while(scanf("%d%d",&n,&m),n||m) { char str[41]; int ccot=0,hcot=0; for(int i=0; i<n; i++) { scanf("%s",str); for(int j=0; j<m; j++) { if(str[j]=='C') { C[ccot].x=i; C[ccot++].y=j; } else if(str[j]=='H') { H[hcot].x=i; H[hcot++].y=j; } } } int hx=0,hy=0,cx=0,cy=0; int len=INF; for(int i=0;i<hcot;i++) { for(int j=0;j<ccot;j++) { int tmp=abs(H[i].x-C[j].x)+abs(H[i].y-C[j].y); if(tmp<len) { len=tmp; hx=H[i].x,hy=H[i].y; cx=C[j].x,cy=C[j].y; } } } printf("%d %d %d %d\n",hx,hy,cx,cy); }}
HDU 4584 Building bridges