洛谷 P2327 [SCOI2005]扫雷
2024-09-08 05:43:03
P2327 [SCOI2005]扫雷
题目描述
输入输出格式
输入格式:
第一行为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 ;}
}
}
最新文章
- sql server全文索引使用中的小坑
- 原生态jdbc的应用技术
- SQL Server调优系列基础篇(索引运算总结)
- Atitit.基于dsl的methodinvoker
- MongoDB驱动之Linq操作
- shopping cart<;代码>;
- zoj 1010 (线段相交判断+多边形求面积)
- java:接口实例
- liunx运维面试题汇总二
- linux中文乱码
- WordPress在Centos下Apache设置伪静态方法
- WPF BackGroundWord 异步加载更新进度条示例
- Java根类Object的方法说明
- scrapy meta不用pipe用命令-o
- python安装scrapy
- Jmeter压力测试简单教程(包括服务器状态监控)
- splay训练
- .Net Core全球化多语言
- Scrum会议
- IntelliJ Idea各种技巧设置笔记和错误解决
热门文章
- Other Linker flags 添加 -Objc导致包冲突
- Django 之 Paginator 分页功能
- ant 内存空间不足
- LightOJ - 1248 Dice (III) —— 期望
- vs2015professional过期后登录微软账户仍然不能使用的解决方法
- 英特尔&#174; Software Guard Extensions 教程系列:第一部分,英特尔&#174; SGX 基础
- ES搜索排序,文档相关度评分介绍——Field-length norm
- 什么是Grunt
- Tips:PowerDesigner16.5 图表显示Code以及 Columns新增Commet显示
- linux增加vlan网卡配置