P2327 [SCOI2005]扫雷

emmmmm.....这题真可以用状压写

因为每个数字只对3个格子有影响,相当于只有2^3=8种状态,所以可以用状压瞎搞

我们用8个数字代表二进制下的8种状态

0 000 ; 1 001 ; 2 010 ; 3 011 ;

4 100 ; 5 101 ; 6 110 ; 7 111 ;

0/1表示无/有雷

设 f[ i ][ j ]表示在第 i-2 ~ i 个格子的状态为 j 的方案数

状态转移时(设当前状态为 i)相当于 f[ i+1 ][ j ]=f[ i ][ j>>1 ]+f[ i ][ j>>1|1 ]

但是我懒得写判断所以直接手算可行转移了(逃

注意不能省略 三个格都为0的情况

#include<cstdio>
using namespace std;
int n,f[][];
int main(){
scanf("%d",&n); int opt;
scanf("%d",&opt);
if(opt==) f[][]=f[][]=;
else if(opt==) f[][]=;
else if(opt==) f[][]=;
for(int i=;i<=n;++i){//把数字转二进制自己观察吧qwq
scanf("%d",&opt);
if(opt==){
f[i+][]=f[i][]+f[i][];
f[i+][]=f[i][]+f[i][];
f[i+][]=f[i][]+f[i][];
}else if(opt==){
f[i+][]=f[i][]+f[i][];
f[i+][]=f[i][]+f[i][];
f[i+][]=f[i][]+f[i][];
}else if(opt==) f[i+][]=f[i][]+f[i][];
else f[i+][]=f[i][]+f[i][];
}
printf("%d",f[n+][]+f[n+][]+f[n+][]+f[n+][]); //注意第 n+1 个格子必须为0
return ;
}

bzoj1088 P2327 [SCOI2005]扫雷的更多相关文章

  1. 洛谷 P2327 [SCOI2005]扫雷

    P2327 [SCOI2005]扫雷 https://www.luogu.org/problem/show?pid=2327 题目描述 输入输出格式 输入格式: 第一行为N,第二行有N个数,依次为第二 ...

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

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

  3. 【题解】Luogu P2327 [SCOI2005]扫雷

    Luogu P2327 [SCOI2005]扫雷 Description 相信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,"余" ...

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

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

  5. 【BZOJ1088】[SCOI2005]扫雷Mine 递推

    调LCT奔溃,刷水调节一下. #include <iostream> #include <cstdio> #include <cstring> using name ...

  6. 【BZOJ1088】[SCOI2005] 扫雷Mine(分类讨论)

    点此看题面 大致题意: 给你一个\(2*n\)的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法. 扫雷性质 听说这是一道动态规划+数学题. 其实,根据扫雷游戏的某个性质,只要确定了第一个格子是 ...

  7. Luogu P2327 [SCOI2005]扫雷【递推/数学】By cellur925

    题目传送门 推了好久啊.看来以后要多玩扫雷了qwq. 其实本题只有三种答案:0.1.2. 对于所有第一列,只要第一个数和第二个数确定后,其实整个数列就确定了,我们可以通过这个递推式得出 sec[i-] ...

  8. 洛谷P2327 [SCOI2005] 扫雷

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

  9. luogu P2327 [SCOI2005]扫雷

    很好的一道题,仔细思索(在y^3 dalao的帮助下)可以发现答案只有0 1 2三种情况 直接枚举第一位有没有雷,就可以递推了qwq 附上y^3大佬的blogs https://blog.csdn.n ...

随机推荐

  1. MySQL--5子查询与连接小结

    子查询:出现在其他sql语句中的 SELECT,必须出现在小括号内,子查询外层可以是常见的SELECT语句,INSERT语句 UPDATE语句 DELETE语句,在子查询中可以包含多个关键字和条件 ( ...

  2. Node.js进击基础一(5-5http知识填坑)

    蚂蚁部落:谷歌浏览器network用法详解 http://www.softwhy.com/forum.php?mod=viewthread&tid=19119 按下f12->Networ ...

  3. 惠普开源的通信测试工具Seagull的安装体会

    1. 为省事起见,先下载安装包,发现依赖库版本太低,没法运行.于是源码编译安装.主要参考:https://github.com/codeghar/Seagull,似乎http://gull.sourc ...

  4. Jenkins pipeline 语法详解

    原文地址http://www.cnblogs.com/fengjian2016/p/8227532.html pipeline 是一套运行于jenkins上的工作流框架,将原本独立运行于单个或者多个节 ...

  5. mybatis多表关联查询之resultMap单个对象

    resultMap的n+1方式实现多表查询(多对一) 实体类 创建班级类(Clazz)和学生类(Student),并在Student中添加一个Clazz类型的属性,用于表示学生的班级信息. mappe ...

  6. 018-AJAX异步请求XMLHttpRequest

    创建XMLHttpRequest对象 一.先来创建XMLHttpRequest对象在IE.Firefox.safari和Opera中创建该对象的JavaScript代码为: var xhr = new ...

  7. CentOS下挂载数据盘

    CentOS下挂载数据盘 1.显示磁盘使用情况:#df 2.显示磁盘:#fdisk -l 3.格式化分区:#mkfs.ext4 /dev/vdb1           //注:将/dev/vdb1格式 ...

  8. WebApi关于配置全局返回Json数据格式时间以及命名小写

    1.直接在Global文件中配置: 1 var formatters = GlobalConfiguration.Configuration.Formatters; 2 var jsonFormatt ...

  9. Sitecore标准模板字段

    在Sitecore中,数据模板定义数据类型.数据模板可以包含任意数量的节,其中每个节可视地分组一些字段.Sitecore标准模板为大多数其他数据模板定义了基本模板./ sitecore / templ ...

  10. Gitlab注册时报错:There was an error with the reCAPTCHA. Please solve the reCAPTCHA again.

    今天注册时碰到以下问题: 上面的错误是因为注册时有一个google的验证码需要输入.但是中国无法访问google,因此无法访问并输入该验证码导致. 解决方案: FanQiang或者通过Github登陆 ...