全球变暖超时了
作者:
yu鱼
,
2024-03-19 15:26:58
,
所有人可见
,
阅读 8
#include<iostream>
#include<algorithm>
#include<cstring>
#include<bits/stdc++.h>
using namespace std;
const int N=1010;
typedef pair<int,int> PII;
char g[N][N];
bool st[N][N];
int n;
int dx[4]={-1,0,1,0};
int dy[4]={0,-1,0,1};
int cnt=0;
void bfs(int x,int y)
{
int flood=0;//被侵蚀的岛的个数
queue<PII>q;
q.push({x,y});
st[x][y]=true;
int num=0; //#的个数
while(!q.empty())
{
PII t=q.front();
q.pop();
num++;
int flag=0;
for(int i=0;i<4;i++)
{
int a,b;
a=t.first+dx[i];
b=t.second+dy[i];
if(g[a][b]=='.')
{
flag++;
continue;
}
if(st[a][b]==true) continue;
g[a][b]=true;
q.push({a,b});
}
if(flag>0)
{
flood++;
}
}
if(num==flood)
cnt++;
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
cin>>g[i];
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(g[i][j]=='#' && st[i][j]==false)
{
bfs(i,j);
}
}
}
cout<<cnt;
}