测试样例表示TLE,测了一下是while循环出不来,可为什么while变成了死循环呢
by 青苹果 @ 2020-01-31 17:48:19
~~显然死循环是常见问题~~
by 听取MLE声一片 @ 2020-01-31 17:55:21
@[青苹果](/user/118279)
by 听取MLE声一片 @ 2020-01-31 17:55:39
1.把queue移到struct后面
by 听取MLE声一片 @ 2020-01-31 17:56:02
2.检查边界判断
by 听取MLE声一片 @ 2020-01-31 17:57:24
这是我的bfs
by 听取MLE声一片 @ 2020-01-31 17:57:56
```cpp
struct point{
int x,y;
point(int xx,int yy){
x=xx;
y=yy;
}
};
int a[32][32];
int book[32][32],don[4][2]={{-1,0},{1,0},{0,-1},{0,1}},n;
int i,j,k,tx,ty;
queue<point> q;
void bfs(){
while(!q.empty()){
point p=q.front();
q.pop();
for(k=0;k<4;k++){
tx=p.x+don[k][0];
ty=p.y+don[k][1];
if(tx<0||tx>=n+2||ty<0||ty>=n+2)
continue;
if(a[tx][ty]==0&&book[tx][ty]==0){
a[tx][ty]=2;
book[tx][ty]=1;
point point1(tx,ty);
q.push(point1);
}
}
}
}
```
by 听取MLE声一片 @ 2020-01-31 17:58:13
@[青苹果](/user/118279)
by 听取MLE声一片 @ 2020-01-31 17:58:22
@[听取mc声一片](/user/253738) 试了一下,还是TLE/(ㄒoㄒ)/~~
by 青苹果 @ 2020-01-31 17:59:16
你看一下我的
by 听取MLE声一片 @ 2020-01-31 18:00:21