RE,求助
查看原帖
RE,求助
726965
timmy2012楼主2025/2/5 16:41

rt,只对了一个点,自我感觉不会爆

代码如下

#include<bits/stdc++.h>
using namespace std;
int c[105][105]={-1};
int n,m;
void read()
{
	memset(c,-1,sizeof(c));
	char t;
	cin>>n>>m;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			cin>>t;
			if(t=='.')
			{
				c[i][j]=-1;
			}
			else
			{
				c[i][j]=0;
			}
		}
	}
}
int dg(int x,int y)
{
	c[x][y]=-1;
	if(c[x-1][y]==0)dg(x-1,y);
	if(c[x+1][y]==0)dg(x+1,y);
	if(c[x][y-1]==0)dg(x,y-1);
	if(c[x][y+1]==0)dg(x,y+1);
	if(c[x-1][y-1]==0)dg(x-1,y-1);
	if(c[x-1][y+1]==0)dg(x-1,y+1);
	if(c[x+1][y-1]==0)dg(x+1,y-1);
	if(c[x+1][y+1]==0)dg(x+1,y+1);
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	read();
	int s=0;
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			if(c[i][j]==0)
			{
				s++;
				dg(i,j);
			}
		}
	}
	cout<<s;
	return 0;
}

2025/2/5 16:41
加载中...