传送门

题目描述

输入输出格式

输入格式:

第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)

输出格式:

一个数,即第一列中雷的摆放方案数。

输入输出样例

输入样例#1:

2
1  1

输出样例#1:

2

思路:可根据左边第一个格子和右边第一个格子的方案(放or不放)推出左边第二个格子的方案,以此类推,最终可以推出左边n个格子的方案。因此,只要知道左边第一个格子的方案,则整列的方案就是唯一的。
我们可以把第一个格子不放雷和第一个格子放雷的方案分别模拟,用a[i]表示右列的数字,用put[i]表示第i格的雷数,得出的答案只能是0 or 1 or 2。

注意一些不合法的情况:

1.当i=1时,put[1]+1<a[1] 说明第2格再放雷也不合法2.当1<i<n时,put[i-1]+put[i]>a[i] 说明放的雷太多了 方案不合法
2.当1<i<n时,put[i-1]+put[i]+1<a[i] 说明放的雷太少了 方案不合法
4.当i=n时,put[n-1]+put[n]<a[n] 说明第n格放雷不合法

AC Code:
#include<cstdio>
#include<cstring>
using namespace std;
int a[10010];
int put[10010];
int main()
{int n;scanf("%d",&n);for(int i=1;i<=n;i++)scanf("%d",&a[i]);int ans=0;put[1]=1;bool flag=0;for(int i=1;i<=n;i++){if(put[i-1]+put[i]==a[i]) put[i+1]=0;else if((put[i-1]+put[i]>a[i])||(i==1&&put[i]+1<a[i])||(i==n&&put[i-1]+put[i]<a[i])||(put[i-1]+put[i]+1<a[i])) {flag=1;break;} else if(i!=n&&put[i-1]+put[i]+1==a[i]) put[i+1]=1;}if(!flag) ans++;memset(put,0,sizeof(put));flag=0;for(int i=1;i<=n;i++){if(put[i-1]+put[i]==a[i]) put[i+1]=0;else if((put[i-1]+put[i]>a[i])||(i==1&&put[i]+1<a[i])||(i==n&&put[i-1]+put[i]<a[i])||(put[i-1]+put[i]+1<a[i])) {flag=1;break;} else if(i!=n&&put[i-1]+put[i]+1==a[i]) put[i+1]=1;}if(!flag) ans++;printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/Loi-Brilliant/p/8612798.html

P2327 [SCOI2005]扫雷 - 模拟相关推荐

  1. 洛谷 P2327 [SCOI2005]扫雷

    PS:如果读过题了可以跳过题目描述直接到题解部分 提交链接:洛谷 P2327 [SCOI2005]扫雷 题目 题目描述 相信大家都玩过扫雷的游戏.那是在一个 n*m 的矩阵里面有一些雷,要你根据一些信 ...

  2. 洛谷 P2327 [SCOI2005] 扫雷

    题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一列中雷的摆放方案数. 输入输出样例 输 ...

  3. 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]

    P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...

  4. 洛谷P2327 [SCOI2005]扫雷 题解

    [SCOI2005]扫雷 - 洛谷 description: 一个 的棋盘.已知右侧一列全部没有雷,且已知第 行相应的格子为 ,表示八联通的格子内共有 个雷.求左侧一列可能的雷的方案数. soluti ...

  5. P2327 [SCOI2005]扫雷(递推)

    题目链接: https://www.luogu.org/problemnew/show/P2327 题目描述 相信大家都玩过扫雷的游戏.那是在一个$n*m$的矩阵里面有一些雷,要你根据一些信息找出雷来 ...

  6. P2327 [SCOI2005]扫雷

    题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一列中雷的摆放方案数. 输入输出样例 输 ...

  7. 【做题笔记】P2327 [SCOI2005]扫雷

    https://www.luogu.com.cn/problem/P2327 看到题解区一位 dalao 思路甚妙,很受启发,故整理了一下思路. 本人表述能力不强,如讲解不清还请见谅. 思路: 四维 ...

  8. 洛谷P2327 [SCOI2005]扫雷【DP】【黄】

    Date:2022.02.09 题目描述 相信大家都玩过扫雷的游戏.那是在一个n×m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,"余"人国流行起了一种简单的扫雷游戏, ...

  9. (dfs/dp)P2327 [SCOI2005]扫雷

    相信大家都玩过扫雷的游戏.那是在一个n×m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,"余"人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷 ...

最新文章

  1. Delta3D———通过游戏管理器组件和消息的扩展创建自定义行为 《转》
  2. 【S操作】一个简单粗暴易用的远程调试方案——OTA http update
  3. 楚乔传手游 服务器维护,楚乔传手游网络异常进不去游戏怎么办?楚乔传网络异常解决方法...
  4. 【每日一题】7月13日题目精讲—Kingdom
  5. leetcode 实现 strStr()
  6. 利用MySQL存储过程分割字符串
  7. 代码质量度量标准_Google研发度量改进实践
  8. [CareerCup] 17.1 Swap Number In Place 互换位置
  9. android编程微博的发送,基于Android手机微博客户端的开发.doc
  10. 通信行业英文缩写整理(待更新)
  11. 有哪些能给视频加特效字幕的软件?试试这几种简单方法
  12. 虚拟机十步安装VMware_workstation
  13. continue用法(continue用法总结)
  14. 2022-2027年中国聚甲醛(POM)市场生产现状与投资前景预测报告
  15. 2020牛客寒假算法基础集训营1总结
  16. Java谣言终结者之Arraylist和Linkedlist到底谁快
  17. 基于复杂网络的大群体应急决策专家意见与信任信息融合方法及应用
  18. STM32学习过程记录8——蜂鸣器
  19. 服务器机柜组件是,网络/服务器机柜_42u标准机柜尺寸【怡富机箱机柜厂家】
  20. 500元的早餐我欣然咽下,生活你是魔鬼么?

热门文章

  1. UML统一建模语言第4章 用例和用例图课后习题
  2. 计算机教室与黑板距离,教室灯具布置怎么做比较合理?
  3. 按照 STAR 法则介绍自己做过的项目
  4. onenote for windows 10 下载与安装
  5. NXP MPC574x LinFlexd配置和DMA配置
  6. 420个生活小窍门,很有用的哦!
  7. 硬件设计基础----运算放大器
  8. Non-resolvable parent POM for com.example:demo:0.0.1-SNAPSHOT: Could not transfer artifact org.sprin
  9. 这本读者期待的芯片书《手把手教你设计CPU——RISC-V处理器》终于出版!
  10. 30岁运营设备10w+的工程师思考设备运营还能做什么?