标签:des style blog http io ar color os sp
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 6970 Accepted Submission(s): 4209
1 #include<iostream> 2 #include<queue> 3 #include<cstdio> 4 #include<cstring> 5 #include<cstdlib> 6 using namespace std; 7 int x1,x2,y1,y2; 8 int dir[8][2]={{-1,2},{-1,-2},{1,2},{1,-2},{-2,1},{-2,-1},{2,1},{2,-1}}; 9 int map[10][10]; 10 struct ln{ 11 int x; 12 int y; 13 int t; 14 }abc,q; 15 16 int border(int x,int y) 17 { 18 if( (x>=1&&x<=8) && (y>=1&&y<=8) &&(map[x][y]==0) ) 19 return 1; 20 return 0; 21 } 22 23 int bfs(int x,int y) 24 { 25 int i; 26 queue<struct ln>p; 27 abc.x=x; 28 abc.y=y; 29 abc.t=0; 30 map[abc.x][abc.y]=1; 31 p.push(abc); 32 while(!p.empty()) 33 { 34 abc=p.front(); 35 p.pop(); 36 if(abc.x==x2&&abc.y==y2) 37 { 38 return abc.t; 39 break; 40 } 41 for(i=0;i<8;i++) 42 { 43 q.x=abc.x+dir[i][0]; 44 q.y=abc.y+dir[i][1]; 45 if(border(q.x,q.y)) 46 { 47 q.t=abc.t+1; 48 p.push(q); 49 map[q.x][q.y]=1; 50 } 51 } 52 } 53 return 0; 54 } 55 int main() 56 { 57 //freopen("in.txt","r",stdin); 58 char n,m; 59 while(~scanf("%c%d %c%d",&n,&y1,&m,&y2)) 60 { 61 getchar(); 62 int count=0; 63 memset(map,0,sizeof(map)); 64 x1=n-‘a‘+1; 65 x2=m-‘a‘+1; 66 count=bfs(x1,y1); 67 printf("To get from %c%d to %c%d takes %d knight moves.\n",n,y1,m,y2,count); 68 69 } 70 return 0; 71 }
标签:des style blog http io ar color os sp
原文地址:http://www.cnblogs.com/xuesen1995/p/4108920.html