做网站销售,个人网站做什么类型好,做网站建设涉及哪些算法,佛山seo扣费[蓝桥杯 2018 省 AB] 全球变暖
题目描述
你有一张某海域 N N N \times N NN 像素的照片#xff0c;. 表示海洋、 # 表示陆地#xff0c;如下所示#xff1a;
.......
.##....
.##....
....##.
..####.
...###.
.......其中 “上下左右” 四个方向上连在一起的一片陆地组…[蓝桥杯 2018 省 AB] 全球变暖
题目描述
你有一张某海域 N × N N \times N N×N 像素的照片. 表示海洋、 # 表示陆地如下所示
.......
.##....
.##....
....##.
..####.
...###.
.......其中 “上下左右” 四个方向上连在一起的一片陆地组成一座岛屿。例如上图就有 2 2 2 座岛屿。
由于全球变暖导致了海面上升科学家预测未来几十年岛屿边缘一个像素的范围会被海水淹没。具体来说如果一块陆地像素与海洋相邻上下左右四个相邻像素中有海洋它就会被淹没。
例如上图中的海域未来会变成如下样子
.......
.......
.......
.......
....#..
.......
.......请你计算依照科学家的预测照片中有多少岛屿会被完全淹没。
输入格式
第一行包含一个整数 N N N。 ( 1 ≤ N ≤ 1000 ) (1 \le N \le 1000) (1≤N≤1000)。
以下 N N N 行 N N N 列代表一张海域照片。
照片保证第 1 1 1 行、第 1 1 1 列、第 N N N 行、第 N N N 列的像素都是海洋。
输出格式
一个整数表示答案。
样例 #1
样例输入 #1
7
.......
.##....
.##....
....##.
..####.
...###.
.......样例输出 #1
1提示
时限 1 秒, 256M。蓝桥杯 2018 年第九届省赛
AC代码:
#includemap
#includeset
#includestack
#includecmath
#includequeue
#includestring
#includebitset
#includecstring
#includeiostream
#includealgorithm
#includenumeric
#includeiomanip
#define endl \n
using namespace std;typedef long long ll;
typedef pairint, intPII;
const int N3e510;
const int MOD1e9 7;
const int INF0X3F3F3F3F;
const int dx[]{-1,1,0,0,-1,-1,1,1};
const int dy[]{0,0,-1,1,-1,1,-1,1};
const int M 1e6 10 ;typedef pairint, intPII;int n;
vectorPIIv[N];
char c[1010][1010];
int flag;
int st[1010][1010];
bool dfs(int x, int y, int o)
{if(x 1 || x n || y 1 || y n || st[x][y] || c[x][y] ! #) return false;//注意一下返回条件st[x][y] 1;v[o].push_back({x, y});if(c[x 1][y] # c[x - 1][y] # c[x][y 1] # c[x][y - 1] #) flag 1;for(int i 0; i 4; i ){dfs(x dx[i], y dy[i], o);} return false;
}
int main()
{cin n;for(int i 1; i n; i ){for(int j 1; j n; j ){cin c[i][j];}}int o 0, ans 0;for(int i 1; i n; i ){for(int j 1; j n; j ){if(st[i][j]) continue;if(c[i][j] #){flag 0;dfs(i, j, o);//判断是否符合题意if(flag ! 1) ans ;o ;}}}cout ans endl;return 0;
}