蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖
Posted NightPoetry
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖相关的知识,希望对你有一定的参考价值。
#include<iostream>
#include<algorithm>
#include<cmath>
#include<climits>
#include<cstring>
using namespace std;
bool s[1005][1005];
bool temS[1005][1005];
bool flag[1005][1005];
void DFS(int x,int y,int n,bool &deathLand)
if(x>=n||x<0||y>=n||y<0) return;
if(flag[x][y]) return;
if(!s[x][y]) return;
flag[x][y]=true;
bool death=false;
if(x-1>=0&&!s[x-1][y]) death=true;
if(x+1<n&&!s[x+1][y]) death=true;
if(y-1>=0&&!s[x][y-1]) death=true;
if(y+1<n&&!s[x][y+1]) death=true;
if(!death) deathLand=false;//如果没死说明这个小岛不会被淹没。
DFS(x-1,y,n,deathLand);
DFS(x+1,y,n,deathLand);
DFS(x,y-1,n,deathLand);
DFS(x,y+1,n,deathLand);
int getNum(int n)//获取当前岛屿数量
int countDeath=0;
memset(flag,false,sizeof(flag));
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
if(s[i][j]&&!flag[i][j])
bool deathLand=true;
DFS(i,j,n,deathLand);
if(deathLand) countDeath++;
return countDeath;
int main()
// freopen("in.txt", "r", stdin);
int n;
cin>>n;
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
char c;
cin>>c;
s[i][j]=(c=='#');//true是陆地
cout<<getNum(n);
return 0;
b站讲解视频地址:蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖_哔哩哔哩_bilibili
以上是关于蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖的主要内容,如果未能解决你的问题,请参考以下文章
蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:日志统计
蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:日志统计
蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:日志统计
蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖