蓝桥杯·寒假百校真题大联赛(大学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期)题目讲解:全球变暖

蓝桥杯·寒假百校真题大联赛(大学B组)(第5期)题目讲解:全球变暖

蓝桥杯·寒假百校真题大联赛(大学B组)(第2期)《迷宫》(DFS版本)