每日一题洛谷P8662 [蓝桥杯 2018 省 AB] 全球变暖c++

P8662 蓝桥杯 2018 省 AB 全球变暖 - 洛谷 (luogu.com.cn)

DFS

cpp 复制代码
#include<iostream>
using namespace std;
char a[1001][1001];
bool s[1001][1001];
int res = 0;
int n;
bool flag = true;
int dx[4] = { -1,0,1,0 };
int dy[4] = { 0,-1,0,1 };
void dfs(int x, int y) {
	s[x][y] = true;
	bool safe = true;
	for (int i = 0; i < 4; i++) {
		int nx = x + dx[i];
		int ny = y + dy[i];
		if (nx<1 || ny>n || ny<1 || nx>n || a[nx][ny] == '.') {
			safe = false;
			break;
		}
	}
	if (safe)flag = true;
	for (int i = 0; i < 4; i++) {
		int nx = x + dx[i];
		int ny = y + dy[i];
		if (nx >= 1 && nx <= n && ny >= 1 && ny <= n && a[nx][ny] == '#' && !s[nx][ny]) {
			dfs(nx, ny);
		}
	}
}
int  main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			cin >> a[i][j];
		}
	}
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			if (a[i][j] == '#' && !s[i][j]) {
				flag = false;
				dfs(i, j);
				if (!flag)res++;
			}
			flag = false;
		}
	}
	cout << res;
	return 0;
}
相关推荐
CoderYanger13 分钟前
Java EE:9.JVM(课件内容-上篇)
java·jvm·程序人生·面试·职场和发展·java-ee·程序员创富
蒸蒸yyyyzwd32 分钟前
cpp 选手转 ai infra 后端秋招学习笔记 day1
c++·transformer
A_cainiao_A41 分钟前
【ggml系列】【第四篇】ggml_graph_compute 多线程计算引擎与算子分发源码深度解析
开发语言·c++·矩阵
CoderYanger41 分钟前
Java EE:9.JVM(课件内容-下篇)
java·jvm·程序人生·面试·职场和发展·java-ee·学习方法
gnsnswa1 小时前
解读6大AI人工智能认证证书
人工智能·信息可视化·职场和发展·数据分析·aigc·学习方法·信息与通信
影视飓风TIM1 小时前
C++ STL 完整入门笔记[9]:C++ 仿函数、priority_queue与STL算法底层笔记
数据结构·c++·笔记
依然鸣1 小时前
蓝桥杯多校模拟赛(第二场)题解
数据结构·c++·经验分享·学习·算法·图论
依然鸣1 小时前
蓝桥杯多校模拟赛 题解
数据结构·c++·经验分享·学习·算法·蓝桥杯
奇树谦2 小时前
ZeroMQ 详解:轻量级高性能消息通信框架及 C++ 使用示例
开发语言·c++
不相心 -w-2 小时前
现代C++——智能指针
开发语言·c++