AcWing 1233. 全球变暖
原题链接
简单
作者:
kooo.
,
2024-04-10 11:26:54
,
所有人可见
,
阅读 1
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
bool st[N][N];
char g[N][N];
int n;
int dx[4]={-1,0,1,0},dy[4]={0,1,0,-1};
void dfs(int x,int y,int& cnt,int& total)
{
st[x][y]=true;
total++;
bool is_bound=false;
for(int i=0;i<4;i++)
{
int a=x+dx[i],b=y+dy[i];
if(a<0||a>=n||b<0||b>=n)continue;
if(st[a][b])continue;
if(g[a][b]=='.')
{
is_bound=true;
continue;
}
dfs(a,b,cnt,total);
}
if(is_bound)cnt++;
}
int main()
{
cin>>n;
int num=0;
for(int i=0;i<n;i++) cin>>g[i];
for(int i=0;i<n;i++)
{
for(int j=0;j<n;j++)
{
if(!st[i][j]&&g[i][j]=='#')
{
int cnt=0,total=0;
dfs(i,j,cnt,total);
if(cnt==total)num++;
}
}
}
cout<<num<<endl;
return 0;
}