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 小时前
TFTP(简单文件传输协议)
笔记
崇山峻岭之间2 小时前
Matlab学习记录41
学习
觉醒大王2 小时前
科研新手如何读文献?从“乱读”到“会读”
论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
代码游侠2 小时前
学习笔记——Linux内核与嵌入式开发3
开发语言·arm开发·c++·学习
怎么没有名字注册了啊2 小时前
C++ 进制转换
开发语言·c++
觉醒大王2 小时前
硕士/博士研究生避坑指南
笔记·深度学习·学习·自然语言处理·职场和发展·学习方法
代码游侠2 小时前
C语言核心概念复习(二)
c语言·开发语言·数据结构·笔记·学习·算法
Gain_chance2 小时前
31-学习笔记尚硅谷数仓搭建-DWD层工具域优惠券使用(支付)、互动域收藏商品、流量域页面浏览、用户域用户注册、用户域用户登录事务事实表建表语句及分析
笔记·学习
金枪不摆鳍2 小时前
C++常用关键字考察
c++