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;
}
相关推荐
_wyt00132 分钟前
多重背包问题详解
c++·背包dp
Ljwuhe1 小时前
C++——多态
开发语言·c++
遇乐的果园2 小时前
前端学习笔记-vue加载渲染优化
前端·笔记·学习
越甲八千2 小时前
STL stack为何没有迭代器
c++
遇乐的果园3 小时前
前端学习笔记-vue状态管理优化
前端·笔记·学习
从零开始的代码生活_3 小时前
C++ 继承详解:访问控制、对象模型、菱形继承与设计取舍
开发语言·c++·后端·学习·算法
云小逸3 小时前
【C++ 第七阶段:模板、泛型编程与工程综合详解】
开发语言·c++
可乐奶茶sky4 小时前
AI Agent 学习
人工智能·学习
摇滚侠4 小时前
Java 全栈开发实战教程 课程笔记 29-33
笔记
GIS阵地4 小时前
QgsSingleBandPseudoColorRenderer 完整详解(QGIS 3.40.13 C++)
开发语言·前端·c++·qt·qgis