10| 扫雷

一、核心思路

本题通过枚举雷的初始状态(有雷/无雷),从而递推出雷的分布,同时检验雷的合法性。

二、细节注意

每个位置雷的状态只可能是1或0。

对于n+1位置处,没有雷。

三、代码实现

cpp 复制代码
const int N = 1e4 + 10;
int a[N], b[N];
int main()
{
	int n; cin >> n;
	int cnt = 0;
	for (int i = 1; i <= n; i++) cin >> b[i];
	for (int j = 0; j <= 1; j++)
	{
		a[1] = j;
		bool flag = true;
		for (int i = 1; i <= n; i++)
		{
			a[i+1] = b[i] - a[i] - a[i-1];
			if (a[i] < 0 || a[i] > 1)  
			{
				flag = false;
				break;
			}
		}
		if (flag && a[n+1] == 0) cnt++;
	 } 
	 cout << cnt << endl;
	return 0;
}
相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
RainCity1 天前
Java Swing 自定义组件库分享(十二)
java·笔记·后端
BadBadBad__AK2 天前
线段树维护区间 k 次方和
c++·数学·算法·stl
卷无止境2 天前
Eigen 库如何借助 OpenMP 加速计算
c++·后端
卷无止境2 天前
OpenMPI、MPICH 与 OpenMP:关系、核心概念与架构全解
c++·后端
郝学胜_神的一滴3 天前
CMake 30:循环语法全解|foreach_while双循环精讲、迭代技巧与实战避坑指南
c++·cmake
卷无止境5 天前
C++ 的Eigen 库全解析
c++
卷无止境5 天前
现代 C++特性大盘点:一门脱胎换骨的老语言
c++·后端
郝学胜_神的一滴5 天前
CMake 27:缓存变量的特性、语法、类型与实操全解
c++·cmake
博客18007 天前
酷宝的使用方法,超好用的免费界面库,C++、MFC可用
c++·mfc·界面库·库来帮·酷宝