AcWing 1233. 全球变暖
原题链接
简单
#include<bits/stdc++.h>
using namespace std;
int n;
char g[1005][1005];
int a[1005][1005];
vector<pair<int,int>>p[100];
int k;
int dx[4] = {0,1,0,-1},dy[4] = {1,0,-1,0};
int flag;
void dfs(int x,int y)
{
a[x][y] = 1;
if(g[x - 1][y] == '#'&&g[x][y - 1] == '#'&&g[x + 1][y] == '#'&&g[x][y + 1] == '#')flag = 1;
for(int i = 0;i < 4;i++)
{
int x1 = x + dx[i],y1 = y + dy[i];
if(!a[x1][y1]&&g[x1][y1] == '#')
{
dfs(x1,y1);
}
}
}
int main()
{
cin >> n;
for(int i = 0;i < n;i++)cin >> g[i];
int num = 0;
for(int i = 0;i < n;i++)
{
for(int j = 0;j < n;j++)
{
flag = 0;
if(!a[i][j]&&g[i][j] == '#')
{
dfs(i,j);
if(!flag)num++;
}
}
}
cout << num << endl;
return 0;
}