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;
}
相关推荐
会编程的李较瘦2 分钟前
【C语言程序设计学习】一、C语法基础
c语言·开发语言·学习
zzh0815 分钟前
nginx安全笔记
笔记·nginx·安全
旖-旎14 分钟前
二分查找(1)
c++·算法·二分查找·力扣·双指针
困死,根本不会18 分钟前
【C 语言】指针学习笔记:从底层原理到实战应用
c语言·开发语言·笔记·学习·算法
努力努力再努力...34 分钟前
学习Multipath多路径
学习
小郝 小郝1 小时前
51 与32 单片机LED控制详解
c语言·开发语言·经验分享·学习·51单片机
金山几座1 小时前
C#学习记录-类(Class)
开发语言·学习·c#
CHENJIAMIAN PRO1 小时前
3D Tiles 2.0 技术审查整理笔记
笔记·3d
tankeven1 小时前
HJ132 小红走网格
c++·算法
kinl20182 小时前
cs2385_note0 (lec2-lec5)
笔记