1365: [蓝桥杯2018初赛]全球变暖
时间:2021-04-17
本文章向大家介绍1365: [蓝桥杯2018初赛]全球变暖,主要包括1365: [蓝桥杯2018初赛]全球变暖使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题目描述
你有一张某海域NxN像素的照片,"."表示海洋、"#"表示陆地,如下所示:
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。
具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。
例如上图中的海域未来会变成如下样子:
....... .##.... .##.... ....##. ..####. ...###. .......其中"上下左右"四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有2座岛屿。
由于全球变暖导致了海面上升,科学家预测未来几十年,岛屿边缘一个像素的范围会被海水淹没。
具体来说如果一块陆地像素与海洋相邻(上下左右四个相邻像素中有海洋),它就会被淹没。
例如上图中的海域未来会变成如下样子:
....... ....... ....... ....... ....#.. ....... .......请你计算:依照科学家的预测,照片中有多少岛屿会被完全淹没。
输入
第一行包含一个整数N。 (1 <= N <= 1000)
以下N行N列代表一张海域照片。
照片保证第1行、第1列、第N行、第N列的像素都是海洋。
以下N行N列代表一张海域照片。
照片保证第1行、第1列、第N行、第N列的像素都是海洋。
输出
一个整数表示答案。
样例输入 Copy
7
.......
.##....
.##....
....##.
..####.
...###.
.......
样例输出 Copy
1
#include<bits/stdc++.h> using namespace std; int v[1010][1010],p; string a[1010]; int n; void dfs(int x,int y)//求有几块陆地 { if(a[x][y]=='#'&&v[x][y]==0&&x>=0&&x<n&&y>=0&&y<n) { v[x][y]=1; dfs(x,y+1); dfs(x+1,y); dfs(x-1,y); dfs(x,y-1); } } void dfs2(int x,int y)//把不会被淹没的陆地全部标记,避免重复判断 { if(a[x][y]=='#'&&x>=0&&x<n&&y>=0&&y<n) { a[x][y]='.'; dfs2(x,y+1); dfs2(x+1,y); dfs2(x-1,y); dfs2(x,y-1); } } int main() { cin>>n; int sum=0,num=0; 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]=='#'&&v[i][j]==0) { dfs(i,j); sum++; } } } for(int i=0; i<n; i++) for(int j=0; j<n; j++) { if(a[i][j]=='#'&&a[i+1][j]=='#'&&a[i-1][j]=='#'&&a[i][j+1]=='#'&&a[i][j-1]=='#')//找到符合条件的陆地 { num++; dfs2(i,j); } } cout<<sum-num<<endl; return 0; }
原文地址:https://www.cnblogs.com/gzj121a/p/14670893.html
- android 仿qq手写板涂鸦
- listview动态获取数据
- toggbutton
- android软件开发之webView.addJavascriptInterface循环渐进【一】
- android的listview item点击详解
- android之surfaceview画图
- viewgroup实现item拖动效果
- Android之ExpandableListView下拉分组的实现
- 粗略的物体碰撞预测及检测
- Regionserver频繁挂掉故障处理实践
- 【翻译】GeoJSON格式规范-RFC7946
- [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
- 基于Spring Cloud 几行配置完成单点登录开发
- 深入浅出全栈工程师: Web编程基础
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法