求助,dfs为什么输出全是0
查看原帖
求助,dfs为什么输出全是0
733980
LxSmill楼主2023/2/17 21:33
#include<bits/stdc++.h>
using namespace std;
int n;
char a[100][100],b[100][100]={0};
void search(int x,int y)
{
	if(a[x][y]!=0||x>n||x<1||y>n||y<1) return;
	a[x][y]=1;
	search(x+1,y);
	search(x-1,y);
	search(x,y+1);
	search(x,y-1);	
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			cin>>a[i][j];
			if(a[i][j]==1) b[i][j]==-1;
		}
	for(int i=1;i<n;i++) search(1,i);
	for(int i=1;i<n;i++) search(i,1);
	for(int i=1;i<n;i++) search(n,i);		
	for(int i=1;i<n;i++) search(i,n);
	for(int i=1;i<=n;i++)
    {
    	for(int j=1;j<=n;j++)
		{
			if(b[i][j]==-1) cout<<1<<' ';
			if(a[i][j]==0) cout<<2<<' ';
			else cout<<0<<' ';
		}
		cout<<endl;
    }
	return 0;	
}
2023/2/17 21:33
加载中...