求助dalao
查看原帖
求助dalao
516867
SZnP楼主2022/1/21 20:46
#include <bits/stdc++.h>
using namespace std;
char a[510][510];
int n,m,ans;
void Ssearch(int x,int y)
{
	if(x>=n||x<0||y>=m||y<0)return; 
	if(a[x][y]=='w')return;
	if(a[x][y]=='0'){a[x][y]='w';}else return;
	if(a[x-1][y-1]!='*'){if(x-1>=n||x-1<=0||y-1>=m||y-1<=0)a[x-1][y-1]='w';Ssearch(x-1,y-1);}
	if(a[x-1][y+1]!='*'){if(x-1>=n||x-1<=0||y+1>=m||y+1<=0)a[x-1][y+1]='w';Ssearch(x-1,y+1);}
	if(a[x+1][y-1]!='*'){if(x+1>=n||x+1<=0||y-1>=m||y-1<=0)a[x+1][y-1]='w';Ssearch(x+1,y-1);}
	if(a[x+1][y+1]!='*'){if(x+1>=n||x+1<=0||y+1>=m||y+1<=0)a[x+1][y+1]='w';Ssearch(x+1,y+1);}
	return;
}
int main()
{
	cin>>n>>m;
	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(i==0)Ssearch(i,j);
		else if(j==0)Ssearch(i,j);
		else if(j==m-1)Ssearch(i,j);
		else if(i==n-1)Ssearch(i,j);
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		cout<<a[i][j];
		cout<<endl;
	}
	for(int i=0;i<n;i++)
	for(int j=0;j<m;j++)
	{
		if(a[i][j]=='0')ans++;
	}
	cout<<ans;
}
2022/1/21 20:46
加载中...