洛谷 2327 [SCOI2005]扫雷
输入输出格式
输入格式:
第一行为N,第二行有N个数,依次为第二列的格子中的数。(1<= N <= 10000)
输出格式:
一个数,即第一列中雷的摆放方案数。
输入输出样例
输入样例#1: 复制
2
1 1
输出样例#1: 复制
2
借鉴了一个大神的思路,这道题我用的四维dp。
用四维数组f储存
一维第二列位置,二维三维四维存i-1,i,i+1是否有雷
初始化:f[0][0][0][0]=f[0][0][0][1]=1; 就是第一个地方有雷或无雷两种情况。
用四维数组f储存
一维第二列位置,二维三维四维存i-1,i,i+1是否有雷
初始化:f[0][0][0][0]=f[0][0][0][1]=1;
如果a[i]为0
f[i][0][0][0]=f[i-1][0][0][0]+f[i-1][1][0][0];
f[i][1][0][0]=f[i-1][0][1][0]+f[i-1][1][1][0];
f[i][0][1][0]=f[i-1][0][0][1]+f[i-1][1][0][1];
f[i][0][0][1]=f[i-1][0][0][0]+f[i-1][1][0][0];
如果为2 f[i][1][1][0]=f[i-1][0][1][1]+f[i-1][1][1][1];
f[i][1][0][1]=f[i-1][0][1][0]+f[i-1][1][1][0];
f[i][0][1][1]=f[i-1][0][0][1]+f[i-1][1][0][1];
如果为3
f[i][1][1][1]=f[i-1][0][1][1]+f[i-1][1][1][1]
然后如果a[n]=1
ans=f[n][1][0][0]+f[n][0][1][0];
因为n+1就没有了
所以肯定四维为0
如果a[n]=2
ans=f[n][1][1][0];
如果a[n]=3
肯定无解
如果a[n]=0
ans=f[n][0][0][0]
输出ans
#include<bits/stdc++.h>
using namespace std;
const int maxn=10005;
int n,f[maxn][2][2][2],ans,a[maxn];
int main(){
scanf("%d",&n);
for(register int i=1;i<=n;i++){
scanf("%d",&a[i]);
}
f[0][0][0][0]=f[0][0][0][1]=1; //初始化
for(register int i=1;i<=n;i++){
if(a[i]==0)
f[i][0][0][0]=f[i-1][1][0][0]+f[i-1][0][0][0];
if(a[i]==3)
f[i][1][1][1]=f[i-1][0][1][1]+f[i-1][1][1][1];
if(a[i]==2){
f[i][1][1][0]=f[i-1][0][1][1]+f[i-1][1][1][1];
f[i][1][0][1]=f[i-1][0][1][0]+f[i-1][1][1][0];
f[i][0][1][1]=f[i-1][0][0][1]+f[i-1][1][0][1];
}
if(a[i]==1){
f[i][1][0][0]=f[i-1][0][1][0]+f[i-1][1][1][0];
f[i][0][1][0]=f[i-1][0][0][1]+f[i-1][1][0][1];
f[i][0][0][1]=f[i-1][0][0][0]+f[i-1][1][0][0];
}
}
if(a[n]==0) ans=f[n][0][0][0]; //判断
else if(a[n]==1) ans=f[n][1][0][0]+f[n][0][1][0];
else ans=f[n][1][1][0];
printf("%d",ans);
}
洛谷 2327 [SCOI2005]扫雷的更多相关文章
- BZOJ1088或洛谷2327 [SCOI2005]扫雷
BZOJ原题链接 洛谷原题链接 很容易发现答案就只有\(0,1,2\)三种答案,而且只要知道第一个格子是否有雷就可以直接顺推下去了. 所以我们跑一次首位有雷,跑一次首位无雷判断是否可行即可. #inc ...
- 洛谷 P2327 [SCOI2005]扫雷
P2327 [SCOI2005]扫雷 https://www.luogu.org/problem/show?pid=2327 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二 ...
- 洛谷P2327 [SCOI2005]扫雷 [2017年5月计划 清北学堂51精英班Day1]
P2327 [SCOI2005]扫雷 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一 ...
- 洛谷P2327 [SCOI2005] 扫雷
题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二列的格子中的数.(1<= N <= 10000) 输出格式: 一个数,即第一列中雷的摆放方案数. 输入输出样例 输 ...
- 洛谷 P1896 [SCOI2005]互不侵犯
洛谷 P1896 [SCOI2005]互不侵犯 题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8 ...
- BZOJ1084或洛谷2331 [SCOI2005]最大子矩阵
BZOJ原题链接 洛谷原题链接 注意该题的子矩阵可以是空矩阵,即可以不选,答案的下界为\(0\). 设\(f[i][j][k]\)表示前\(i\)行选择了\(j\)个子矩阵,选择的方式为\(k\)时的 ...
- 【题解】洛谷P1896 [SCOI2005] 互不侵犯(状压DP)
洛谷P1896:https://www.luogu.org/problemnew/show/P1896 前言 这是一道状压DP的经典题 原来已经做过了 但是快要NOIP 复习一波 关于一些位运算的知识 ...
- 洛谷 P2331 [SCOI2005]最大子矩阵
洛谷 这一题,乍一眼看上去只想到了最暴力的暴力--大概\(n^4\)吧. 仔细看看数据范围,发现\(1 \leq m \leq 2\),这就好办了,分两类讨论. 我先打了\(m=1\)的情况,拿了30 ...
- 洛谷 P2324 [SCOI2005]骑士精神 解题报告
P2324 [SCOI2005]骑士精神 题目描述 输入输出格式 输入格式: 第一行有一个正整数T(T<=10),表示一共有N组数据.接下来有T个5×5的矩阵,0表示白色骑士,1表示黑色骑士,* ...
随机推荐
- 【架构】Linux的架构(architecture)
最内层是硬件,最外层是用户常用的应用,比如说firefox浏览器,evolution查看邮件,一个计算流体模型等等.硬件是物质基础,而应用提供服务.但在两者之间,还要经过一番周折. 还记得Linux启 ...
- Android学习拾遗
1. java中的flush()作用:强制将输出流缓冲区的数据送出. 2. 文件存储: 存储到内部:另外使用一个class实现,最开始初始化用了this,后来放在这里不合适,改成了带参数的构造方法. ...
- Angular项目中引入jQuery
npm install --save jquery npm install @types/jquery --save 在对应的组件中引入 import * as $ from "jquery ...
- Django中object.all是什么东西
前言 先抛出一个问题.银行就相当于一个数据库,你去银行取钱存钱办卡销卡,是你告诉银行柜员方便还是你自己去操作电脑办卡取卡方便?(你还不一定会,假设自动存款机还没发明),object在数据库中就相当于银 ...
- 【网络是怎么连接的】一、浏览器与HTTP协议
浏览器: 1.生成HTTP消息: 1).网址结构: http://user:password@www.glasscom.com:80/dir/file1.htm 2).HTTP服务基本思路: a).请 ...
- selenium自动化测试时,chrome 出现“Chrome 正受到自动测试软件的控制”的解决办法
背景 使用selenium自动化测试的时候,启动浏览器出现'Chrome正在受到自动软件的控制'的问题,修改方法有两种. 一.在浏览器配置里加个参数,忽略掉这个警告提示语:disable_infoba ...
- 如何在webpack开发中利用vue框架使用ES6中提供的新语法
在webpack中开发,会遇到一大推问题,特别是babel6升级到babel7,要跟新一大推插件,而对于安装babel的功能就是在webpack开发中,vue中能够是用ES6的新特性: 例如ES6中的 ...
- 03、python的基础-->str字符串的使用
1.字符串首字母大写 s = "aksjdjjhfhdhjaGGGGkkk" s1 = s.capitalize() print(s1) 2.字符串全部字母大写 s = " ...
- 第一周复习一 ( HTML表单form)
form <from id="" name="" method="post/get" action="">& ...
- Error configuring application listener of class org.springframework.web.context.
1.java.lang.NoClassDefFoundError: org/objectweb/asm/ClassVisitor 缺少asm-3.3.jar 2.java.lang.NoClassDe ...