AcWing 1233. 全球变暖
原题链接
简单
作者:
1秒对视
,
2025-04-06 12:30:09
· 辽宁
,
所有人可见
,
阅读 1
#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
const int N=1100;
char g[N][N];
int vis[N][N];
int flag;
int n;
void dfs(int x,int y){
vis[x][y]=1;
int dx[4]={0,1,0,-1},dy[4]={1,0,-1,0};
if(g[x+1][y]=='#' && g[x-1][y]=='#' && g[x][y+1]=='#' && g[x][y-1]=='#')
flag=1;
for(int i=0;i<4;i++){
int newx=x+dx[i],newy=y+dy[i];
if(newx<1 || newx>n || newy<1 || newy>n || vis[newx][newy]==1) continue;
if(g[newx][newy]=='#')
dfs(newx,newy);
}
}
int main(){
cin >> n;
int ans=0;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
cin >> g[i][j];
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++){
if(g[i][j]=='#' && vis[i][j]==0){
flag=0;
dfs(i,j);
if(flag==0)
ans++;
}
}
cout << ans;
return 0;
}