sxshm @ 2023-09-13 19:46:52
如果你用的是BFS
并且用了标记数组
还MLE了
需要在走的时候,标记已经走过了的点
比如
for(int i=0;i<4;i++){
int nx=tmp.x+dx[i];
int ny=tmp.y+dy[i];
if(nx>0 && nx<=n && ny>0 && ny<=n && !vis[nx][ny]){
q.push({nx,ny,tmp.step+1});
}
}
要改成
for(int i=0;i<4;i++){
int nx=tmp.x+dx[i];
int ny=tmp.y+dy[i];
if(nx>0 && nx<=n && ny>0 && ny<=n && !vis[nx][ny]){
q.push({nx,ny,tmp.step+1});
v[nx][ny]=1;//<------这里
}
}
by 幻想繁星 @ 2023-09-13 19:48:11
不然呢?
by 幻想繁星 @ 2023-09-13 19:48:32
没看太懂您想表达什么
by sxshm @ 2023-09-13 20:07:22
这只是本蒟蒻看了讨论区后,把自己的wa代码改对了的心得而已,大神们自动跳过
by sxshm @ 2023-09-13 20:09:51
毕竟还是会有人再此处MLE
by heyx0201 @ 2023-09-13 20:12:21
这题dfs都可以过…
by sxshm @ 2023-09-13 20:18:48
可是不能局限于AC一道题
by sxshm @ 2023-09-13 20:19:37
这道题的正解难道不是BFS吗