标签:print using 分享 维数 void eof nes push font
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1418 Accepted Submission(s): 393
1 #include<stdio.h> 2 #include<string.h> 3 #include<queue> 4 using namespace std; 5 int n,m,k,sx,sy,ex,ey; 6 struct haha 7 { 8 int x, y, step; 9 }q,temp; 10 char map[111][111]; 11 int dir[4][2]={0,1,0,-1,1,0,-1,0}; 12 int vis[111][111][11]; 13 void BFS() 14 { 15 int i; 16 q.x=sx; 17 q.y=sy; 18 q.step=0; 19 queue<struct haha>que; 20 memset(vis,0,sizeof(vis)); 21 vis[sx][sy][0]=1; 22 que.push(q); 23 while(!que.empty()) 24 { 25 temp=que.front(); 26 que.pop(); 27 if(temp.x==ex&&temp.y==ey) 28 { 29 printf("%d\n",temp.step); 30 return ; 31 } 32 for(i=0;i<4;i++) 33 { 34 int xx,yy; 35 xx=temp.x+dir[i][0]; 36 yy=temp.y+dir[i][1]; 37 if(xx>=0&&xx<n&&yy>=0&&yy<m&&(map[xx][yy]!=‘#‘||(temp.step+1)%k==0)&&!vis[xx][yy][(temp.step+1)%k]) 38 { 39 q.step=temp.step+1; 40 q.x=xx; 41 q.y=yy; 42 vis[xx][yy][(temp.step+1)%k]=1; 43 que.push(q); 44 } 45 } 46 } 47 printf("Please give me another chance!\n"); 48 } 49 int main() 50 { 51 int i,j,cas; 52 scanf("%d",&cas); 53 while(cas--) 54 { 55 scanf("%d %d %d",&n,&m,&k); 56 for(i=0;i<n;i++) 57 { 58 scanf("%s",map[i]); 59 for(j=0;j<m;j++) 60 { 61 if(map[i][j]==‘Y‘) {sx=i;sy=j;} 62 else if(map[i][j]==‘G‘) {ex=i;ey=j;} 63 } 64 } 65 BFS(); 66 } 67 return 0; 68 }
HDU2579--Dating with girls(2)--(DFS, 判重)
标签:print using 分享 维数 void eof nes push font
原文地址:http://www.cnblogs.com/liuzhanshan/p/6053639.html