#include <iostream>
#define maxn 105
using namespace std;
char mapp[maxn][maxn];
bool book[maxn][maxn];
int n,res;
int next[4][2]={{0,1},{1,0},{0,-1},{-1,0}};
bool check(int i,int j)
{
for(int k=0;k<=3;k++)
{
int tx=i+next[k][0];
int ty=j+next[k][1];
if(tx<0||ty<0||tx>=n||ty>=n)
continue;
if(mapp[tx][ty]=='.')
{
return false;
}
}
return true;
}
void dfs(int x,int y)
{
for(int k=0;k<=3;k++)
{
int tx=x+next[k][0];
int ty=y+next[k][1];
if(tx<0||ty<0||tx>=n||ty>=n)
continue;
if(mapp[tx][ty]=='#')
{
mapp[tx][ty]='.';
dfs(tx,ty);
}
}
}
int main()
{
cin>>n;
for(int i=0;i<n;i++)
{
cin>>mapp[i];
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(mapp[i][j]=='#'&&check(i,j)==false)
book[i][j]=true;
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(book[i][j]==true)
mapp[i][j]='.';
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(mapp[i][j]=='#')
{
mapp[i][j]='.';
dfs(i,j);
res++;
}
}
}
cout << res << endl;
return 0;
}
/*
.......
.##....
.##....
....##.
..####.
...###.
.......
*/
联通快(dfs暴力)全球变暖
最新推荐文章于 2025-02-21 15:24:41 发布