再次求助
  • 板块学术版
  • 楼主Lion0803
  • 当前回复5
  • 已保存回复5
  • 发布时间2023/9/9 21:37
  • 上次更新2023/11/2 21:46:25
查看原帖
再次求助
844124
Lion0803楼主2023/9/9 21:37

https://www.luogu.com.cn/discuss/new?forum=academics

#include<bits/stdc++.h>
using namespace std;
int n,m;
char a[500][500];
void f1()
{
	bool b;
	for(int h=0;h<n*m;h++)
	{
		b=true; 
		for(int i=0;i<n;i++)
		{
			for(int j=0;j<m;j++)
			{
				if(a[i][j]=='.')
				{
					if(a[i-1][j]=='!'||a[i+1][j]=='!'||a[i][j-1]=='!'||a[i][j+1]=='!')
					{
						a[i][j]='!';
						b=false;
					}
				}
			}
		}
		if(b=true)
			break;
	}
}
int main()
{
	//freopen("in.in","r",stdin);
	//freopen("out.out","w",stdout);
	int ans=0;
	scanf("%d %d",&n,&m);
	for(int i=0;i<n;i++)
	{
		getchar();
		for(int j=0;j<m;j++)
		{
			char c;
			c=getchar();
			if(c=='0')
				a[i][j]='#';
			else
				if(c<='9'&&c>='1')
					a[i][j]='.';
		}
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<m;j++)
		{
			if(a[i][j]=='.')
			{
				a[i][j]='!';
				ans+=1;
				f1();
			}
		}
	}
	printf("%d",ans);
	return 0;
} 
2023/9/9 21:37
加载中...