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;
}