求助!!!
  • 板块学术版
  • 楼主I_am_emoing
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/1/20 18:19
  • 上次更新2023/10/24 03:29:41
查看原帖
求助!!!
648475
I_am_emoing楼主2023/1/20 18:19

题目传送门

奉上代码:

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<ctime>
#include<queue>
#include<stack>
#include<map>
using namespace std;
int a[185][185],b[185][185],n,m,x,y,dx[4]={-1,1,0,0},dy[4]={0,0,-1,1};
bool visited[185][185];
struct p{
	int x,y,t;
}; 
p p1,p2,p3;
void bfs()
{
	queue<p>q;
	p1.x=x,p1.y=y,p1.t=0;
	visited[p1.x][p1.y]=1;
	q.push(p1);
	while(!q.empty())
	{
		p2=q.front();
		cout<<p2.x<<" "<<p2.y<<" "<<p2.t<<endl;
		q.pop();
		for(int i=0;i<4;i++)
		{
			p3.x=p2.x+dx[i],p3.y=p2.y+dy[i],p3.t=p2.t+1;
			if(p3.x>=1&&p3.x<=n&&p3.y>=1&&p3.y<=m&&!visited[p3.x][p3.y]&&a[p3.x][p3.y]==0)
			{
				b[p3.x][p3.y]=p3.t;
				q.push(p3);
				visited[p3.x][p3.y]=1;
			}
		}
	}
}
int main()
{
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>a[i][j];
			b[i][j]=a[i][j];
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(a[i][j]==1)
			{
				x=i,y=j;
				bfs();
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cout<<b[i][j]<<' ';
		}
		cout<<endl;
	}
	return 0;
}

为啥不输出捏(来自蒟蒻的发问

2023/1/20 18:19
加载中...