liyuanxi_0214 @ 2024-12-23 20:47:32
把你那破O2给关喽。
顺便问一下这【数据删除】的为什么厌氧。
#include<iostream>
#include<queue>
using namespace std;
int n,m;
char a[105][105];
bool vis[105][105];
int bfs(int sx,int sy){
queue<int> qx,qy;
int dx[]={-1,1,0,0};
int dy[]={0,0,-1,1};
qx.push(sx);
qy.push(sy);
vis[sx][sy]=1;
while(!qx.empty()){
int x=qx.front();
int y=qy.front();
qx.pop();
qy.pop();
if(x==n&&y==m){
cout<<"Yes";
return 0;
}
for(int i=0;i<4;i++){
int nx=x+dx[i];
int ny=y+dy[i];
if(nx<1||nx>n||ny<1||ny>m)continue;
if(a[nx][ny]=='#')continue;
if(vis[nx][ny]==1)continue;
qx.push(nx);
qy.push(ny);
vis[nx][ny]=1;
}
}
cout<<"No";
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
bfs(1,1);
return 0;
}
by ZMQ_Ink6556 @ 2024-12-23 20:49:57
@liyuanxi_0214 BFS 结束没有返回值,导致 UB,导致 RE。
关掉 O2 能过是因为 你运气好 玄学
by ZMQ_Ink6556 @ 2024-12-23 20:50:32
你就不能 void bfs()
吗?
by liyuanxi_0214 @ 2024-12-23 20:53:10
@ZMQ_Ink6556
谢谢您,我以为自己记得写了(磕头