WA了求助
查看原帖
WA了求助
330451
帅皮的瓜粉楼主2020/7/1 13:41

#include<bits/stdc++.h>
using namespace std;
int a[100][100];
int dis[100][100],vis[100][100];
int n,m;
struct xxx
{
	int x,y;
};
void bfs(xxx x)
{
	queue<xxx>q;
	q.push(x);
	dis[x.x][x.y]=1;
	vis[x.x][x.y]=0;
	while(!q.empty())
	{	
		xxx now=q.front();
		if(a[now.x][now.y]==0)
		{
			cout<<dis[now.x][now.y]<<" ";
			return ;
		}
		q.pop();
		int dx[4]={0,0,1,-1};
		int dy[4]={1,-1,0,0};
		for(int i=0;i<4;i++)
		{
			int tx=now.x+dx[i];
			int ty=now.y+dy[i];
			if(tx>0&&ty>0&&tx<n&&ty<m&&vis[tx][ty]==0)
			{
				dis[tx][ty]++;
				xxx tmp;
				tmp.x=tx;
				tmp.y=ty;
				q.push(tmp);
			}
		}
	}
}
int main()
{
	
	cin>>n>>m;
	xxx tmp;
	for(int i=0;i<n;i++) 
	{
		for(int j=0;j<m;j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i=0;i<n;i++) 
	{
		for(int j=0;j<m;j++)
		{
			if(a[i][j]==0)
			{
				cout<<"0 ";
			}
			if(a[i][j]==1)
			{
				memset(dis,0,sizeof(dis));
				memset(vis,0,sizeof(vis));
				tmp.x=i;
				tmp.y=j;
				bfs(tmp);
			}
		}
		cout<<endl;
	}
    return 0;
}


该代码样例输入后的输出

0 0 0
0 1 0
2 2 1

此贴禁止类似于傲梦编程的无意义回复,谢谢您的配合

2020/7/1 13:41
加载中...