此题大意讲的是只能走黑砖,求他所能走的黑砖个数。
这题让我很郁闷,写完了结果各种不对,最后才调试出原来我把行列的数搞反了,千万要细心!
还有
p=que.front();
que.pop();
这段代码只能放在循环内的前面,如若置于后面则还没有搜索完全就很容易跳出。
1 #include2 #include 3 #include 4 using namespace std; 5 6 char map[21][21]; 7 int m[21][21]; 8 int dir[4][2]={ { 1,0},{-1,0},{ 0,1},{ 0,-1}}; 9 int row,col; 10 struct point 11 { 12 int x,y; 13 }pp; 14 queue que; 15 16 int bfs() 17 { 18 int i,dx,dy,step=1; 19 point p,q; 20 while(!que.empty()) 21 { 22 p=que.front(); 23 que.pop(); 24 for(i=0;i<4;i++) 25 { 26 dx=p.x+dir[i][0]; 27 dy=p.y+dir[i][1]; 28 if(dx<0||dx>row-1||dy<0||dy>col-1) 29 continue; 30 if(map[dx][dy]=='.'&&!m[dx][dy]) 31 { 32 m[dx][dy]=1; 33 q.x=dx;q.y=dy; 34 step++; 35 que.push(q); 36 } 37 } 38 } 39 return step; 40 } 41 42 int main() 43 { 44 int i,j; 45 while(cin>>col>>row&&!(row==0&&col==0)) 46 { 47 memset(m,0,sizeof(m)); 48 for(i=0;i >map[i]; 50 for(i=0;i
只能在各种空间去捕捉她的影子,却又很无奈,希望她好吧。下午去机房吧,忙起来就会忘掉这一切。Fight!