_bzoj1088 [SCOI2005]扫雷Mine【dp】
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=1088
简单的状压dp(话说本题的编号减1,即1087,也是一道状压dp),不解释。
#include <cstdio> const int maxn = 10005; int n, b[maxn];
long long f[maxn][8]; int main(void) {
scanf("%d", &n);
for (int i = 1; i <= n; ++i) {
scanf("%d", b + i);
if (b[i] > 3 || b[i] < 0) {
puts("0");
return 0;
}
}
if (b[1] == 3 || b[n] == 3) {
puts("0");
return 0;
}
if (b[1] == 0) {
f[1][0] = 1;
}
else if (b[1] == 1) {
f[1][0] = f[1][1] = 1;
}
else {
f[1][1] = 1;
} for (int i = 2; i <= n; ++i) {
if (b[i - 1] == 0) {
f[i][0] = f[i - 1][0] + f[i - 1][4];
}
else if (b[i - 1] == 1) {
f[i][1] = f[i - 1][0] + f[i - 1][4];
f[i][2] = f[i - 1][1] + f[i - 1][5];
f[i][4] = f[i - 1][2] + f[i - 1][6];
}
else if (b[i - 1] == 2) {
f[i][3] = f[i - 1][1] + f[i - 1][5];
f[i][5] = f[i - 1][2] + f[i - 1][6];
f[i][6] = f[i - 1][3] + f[i - 1][7];
}
else {
f[i][7] = f[i - 1][3] + f[i - 1][7];
}
} if (b[n] == 0) {
printf("%lld\n", f[n][0] + f[n][4]);
}
else if (b[n] == 1) {
printf("%lld\n", f[n][1] + f[n][5] + f[n][2] + f[n][6]);
}
else if (b[n] == 2) {
printf("%lld\n", f[n][3] + f[n][7]);
}
return 0;
}
_bzoj1088 [SCOI2005]扫雷Mine【dp】的更多相关文章
- Bzoj 1088: [SCOI2005]扫雷Mine (DP)
Bzoj 1088: [SCOI2005]扫雷Mine 怒写一发,算不上DP的游戏题 知道了前\(i-1\)项,第\(i\)项会被第二列的第\(i-1\)得知 设\(f[i]\)为第一列的第\(i\) ...
- [BZOJ1088][SCOI2005]扫雷Mine DP
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1088 记录下每一个格子对应左边格子放的雷的情况,然后dp转移就好了. #include&l ...
- 1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1635 Solved: 979[Submit][Sta ...
- BZOJ 1088: [SCOI2005]扫雷Mine【思维题,神奇的模拟+枚举】
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3791 Solved: 2234[Submit][St ...
- 【递推】BZOJ 1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2275 Solved: 1328[Submit][St ...
- 【BZOJ】1088: [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Description 相 信大家都玩过扫雷的游戏.那是在一个n*m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,“余”人国流行起了一种简单的 ...
- bzoj 1088: [SCOI2005]扫雷Mine
题目链接 1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2525 Solved: 1495[Submi ...
- [SCOI2005]扫雷Mine
1088: [SCOI2005]扫雷Mine Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2028 Solved: 1187[Submit][St ...
- NC20241 [SCOI2005]扫雷MINE
NC20241 [SCOI2005]扫雷MINE 题目 题目描述 相信大家都玩过扫雷的游戏.那是在一个 \(n \times m\) 的矩阵里面有一些雷,要你根据一些信息找出雷来. 万圣节到了 ,&q ...
随机推荐
- nexus3.1私服搭建
原文:http://blog.csdn.net/qqqqq210/article/details/52993337 1.简介 近期公司需要搭建jenkins自动化构建部署,需要搭建nexus私服环境, ...
- 异步SOCKET分包和组包的一种通用算法
unit uPackage;// 应用协议// cxg 2016-9-23// 包=包头+包体 interface uses SysUtils, Classes, PeachCtrl.Net.Iocp ...
- Linux-百度云之AccleriderMini使用
打开命令行,然后输入: sudo apt-get install mono-devel 最后安装完成时,运行: 示例:mono xx.exe 实例:mono accleridaMini.exe 最后成 ...
- Android中的动画具体解释系列【2】——飞舞的蝴蝶
这一篇来使用逐帧动画和补间动画来实现一个小样例,首先我们来看看Android中的补间动画. Android中使用Animation代表抽象的动画类,该类包含以下几个子类: AlphaAnimation ...
- MyEclipse搭建SSH(Struts2+Spring2+Hibernate3)框架项目教程
对Struts.spring.hibernate大体上了解一遍后,就是针对这个几个框架的整合了. 怎样整合,请看以下: 第一:Struts2的jar和xml配置文件: jar包: commons-fi ...
- 适合初学C语言是练习的代码
作为一个小白,自己学C的时候就想找些代码练练手,就整理了一些. 1.最大公约数和最小公倍数 # include <stdio.h> int main(void) { int i, ...
- UC技术博客开放通知
国内知名浏览器UC开放技术博客( http://tech.uc.cn/),技术博客所涵盖技术点有: Hadoop Linux MySQL 前端与client技术 图像处理 开发语言和框架 数据存储 数 ...
- string string.h cstring 区别
c++中 string与string.h 的作用和区别 #include <string.h> void main() { string aaa= "a ...
- Override is not allowed when implementing interface method Bytecode Version Overriding and Hiding Methods
java - @Override is not allowed when implementing interface method - Stack Overflow https://stackove ...
- Struts2自定义过滤器的小例子-入门篇
创建web项目 实现的效果! 用户点击页面不同的链接,后台调用不同的代码! 创建两个类实现共同的接口! public interface Action { String execute(); } ...