题目描述

输入输出格式

输入格式:

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

输出格式:

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

输入输出样例

输入样例#1:

2
1 1
输出样例#1:
2
算法1:
枚举左边每个位置是否有雷,复杂度O(2^n*n)。
算法2:
我们发现,当前两个位置确定时,后面的位置也就可以推出来了。
于是我们可以只枚举前两位。
复杂度O(n)
 
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int n,num[],a[];
bool mine[],flag;
int main(){
scanf("%d",&n);
for(int i=;i<=n;i++)scanf("%d",&num[i]);
if(num[]==){printf("");return ;}
if(num[]==){
mine[]=;mine[]=;
a[]=;
for(int i=;i<=n-;i++){
for(int j=i-;j<=i+;j++)a[i]+=mine[j];
if(a[i]==num[i])mine[i+]=;
else if(a[i]==num[i]-)a[i]++,mine[i+]=;
else {flag=;break;}
}
if(flag==){printf("");return ;}
a[n]+=mine[n-];a[n]+=mine[n];
if(a[n]==num[n]){printf("");return ;}
else{printf("");return ;}
}
if(num[]==){
int ans=;
mine[]=;mine[]=;
a[]=;
for(int i=;i<=n-;i++){
for(int j=i-;j<=i+;j++)a[i]+=mine[j];
if(a[i]==num[i])mine[i+]=;
else if(a[i]==num[i]-)a[i]++,mine[i+]=;
else {flag=;break;}
}
if(flag!=){a[n]+=mine[n-];a[n]+=mine[n];if(a[n]==num[n])ans++;} memset(mine,,sizeof(mine));
memset(a,,sizeof(a));
mine[]=;mine[]=;
a[]=;
for(int i=;i<=n-;i++){
for(int j=i-;j<=i+;j++)a[i]+=mine[j];
if(a[i]==num[i])mine[i+]=;
else if(a[i]==num[i]-)a[i]++,mine[i+]=;
else {flag=;break;}
}
if(flag!=){a[n]+=mine[n-];a[n]+=mine[n];if(a[n]==num[n])ans++;}
printf("%d",ans);return ;
}
if(num[]==){
mine[]=;mine[]=;
a[]=;
for(int i=;i<=n-;i++){
for(int j=i-;j<=i+;j++)a[i]+=mine[j];
if(a[i]==num[i])mine[i+]=;
else if(a[i]==num[i]-)a[i]++,mine[i+]=;
else {flag=;break;}
}
if(flag==){printf("");return ;}
a[n]+=mine[n-];a[n]+=mine[n];
if(a[n]==num[n]){printf("");return ;}
else{printf("");return ;}
}
}

最新文章

  1. sql server全文索引使用中的小坑
  2. 原生态jdbc的应用技术
  3. SQL Server调优系列基础篇(索引运算总结)
  4. Atitit.基于dsl的methodinvoker
  5. MongoDB驱动之Linq操作
  6. shopping cart&lt;代码&gt;
  7. zoj 1010 (线段相交判断+多边形求面积)
  8. java:接口实例
  9. liunx运维面试题汇总二
  10. linux中文乱码
  11. WordPress在Centos下Apache设置伪静态方法
  12. WPF BackGroundWord 异步加载更新进度条示例
  13. Java根类Object的方法说明
  14. scrapy meta不用pipe用命令-o
  15. python安装scrapy
  16. Jmeter压力测试简单教程(包括服务器状态监控)
  17. splay训练
  18. .Net Core全球化多语言
  19. Scrum会议
  20. IntelliJ Idea各种技巧设置笔记和错误解决

热门文章

  1. Other Linker flags 添加 -Objc导致包冲突
  2. Django 之 Paginator 分页功能
  3. ant 内存空间不足
  4. LightOJ - 1248 Dice (III) —— 期望
  5. vs2015professional过期后登录微软账户仍然不能使用的解决方法
  6. 英特尔&#174; Software Guard Extensions 教程系列:第一部分,英特尔&#174; SGX 基础
  7. ES搜索排序,文档相关度评分介绍——Field-length norm
  8. 什么是Grunt
  9. Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
  10. linux增加vlan网卡配置