被狠狠地RE了,但看不出哪错了。
RE代码:
#include<bits/stdc++.h>
using namespace std;
int n,m,a[183][183],b[183][183],dis[183][183],xx[4]={0,0,1,-1},yy[4]={1,-1,0,0};
char c;
struct qwe
{
int x,y,cnt;
}h;
queue<qwe> q;
int bfs()
{
while(!q.empty())
{
h=q.front();
q.pop();
int x=h.x,y=h.y,cnt=h.cnt;
dis[x][y]=cnt;
for(int i=0;i<4;++i)
{
int dx=x+xx[i],dy=y+yy[i];
if(dx>=1&&dx<=n&&dy>=1&&dy<=m&&!b[dx][dy]&&a[dx][dy]==0)
{
b[dx][dy]=1;
qwe net;
net.x=dx;net.y=dy;net.cnt=cnt+1;
q.push(net);
}
}
}
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>c;
a[i][j]=c-'0';
if(a[i][j]==1)
{
b[i][j]=1;
q.push({i,j,0});
}
}
}
queue<int> p;
p.pop();
bfs();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
printf("%d ",dis[i][j]);
}
putchar('\n');
}
return 0;
}
希望大佬看看那里出问题了