#include<bits/stdc++.h>
using namespace std;
char a[1010][1010];
int vis[1010][1010]={0}, d[4][2] = { {1,0},{-1,0},{0,1},{0,-1} };
int flag;
void dfs(int x, int y)
{
vis[x][y] = 1;
if (a[x + 1][y] != '.' && a[x - 1][y] != '.' && a[x][y + 1] != '.' && a[x][y - 1] != '.')
flag = 1;
for (int i = 0; i < 4; i++)
{
//int nx = x + d[i][0], ny = y + d[i][1];
if (a[x + d[i][0]][y + d[i][1]] == '#' && vis[x + d[i][0]][y + d[i][1]] == 0)
dfs(x + d[i][0], y + d[i][1]);
}
}
int main()
{
int N;
cin >> N;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++)
{
cin >> a[i][j];
}
int ans=0;
for (int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++)
{
if (a[i][j] == '#' && vis[i][j] == 0)
{
flag = 0;
dfs(i, j);
if (flag == 0)
ans++;
}
}
cout << ans<<endl;
return 0;
}
0 回复
0 转发
0 喜欢
0 阅读



