weinan030416

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

淹没岛屿

5
..###
##...
#.#..
.....
#####

4

0

复制代码
#include<bits/stdc++.h>
using namespace std;

bool flag;
char a[1010][1010];
int cnt=0,ans=0,rans=0;
int n;
int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1};

void dfs(int x,int y)
{
    if(a[x][y]!='#')
    return;
    if(x>=n||x<0||y>=n||y<0)
    return;
    if(!flag)
    {
        cnt=0;
        for(int i=0;i<4;i++)
        {
            int nx=x+dx[i];
            int ny=y+dy[i];
            if(nx<x&&nx>=0&&ny<y&&ny>=0&&a[nx][ny]!='.')
            {
                cnt++;
            }
        }
        if(cnt==4)
        {
            ans++;
            flag=true;
        }
    }
    a[x][y]='*';
    for(int i=0;i<4;i++)
    {
        int nx=x+dx[i];
        int ny=y+dy[i];
        dfs(nx,ny);
    }
}

int main()
{
    cin>>n;
    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(a[i][j]=='#')
            {
                rans++;
                flag=false;
                dfs(i,j);
            }
        }
    }
    cout<<rans<<endl;//原来的岛屿 
    cout<<ans<<endl;//现在的岛屿 
    return 0;
}
复制代码

 

posted on   楠030416  阅读(16)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示