AcWing 1233. 全球变暖
原题链接
简单
作者:
ythyth
,
2021-04-06 21:24:40
,
所有人可见
,
阅读 298
#include<iostream>
#include<queue>
#include<cstring>
using namespace std;
typedef pair<int,int>PII;
int dx[4]={0,0,1,-1};
int dy[4]={1,-1,0,0};
const int N=1010;
char a[N][N];
int v[N][N]; int n;
int check(int x,int y){
int sss=0;
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<n&&a[xx][yy]=='.')
sss++;
}
if(sss>=1)return 0;
else return 1;
}
int flg=0;
void dfs(int x,int y){
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx>=0&&xx<n&&yy>=0&&yy<n&&a[xx][yy]=='#'&&v[xx][yy]==0){
v[xx][yy]=1;
dfs(xx,yy);
if(check(xx,yy)==1)flg=1;
}
}
}
int main(){
cin>>n;
int ans=0;
for(int i=0;i<n;i++)cin>>a[i];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(v[i][j]==0&&a[i][j]=='#'){
dfs(i,j);
if(flg==0)ans++;
flg=0;
}
}
}
cout<<ans;
}