_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 ...
随机推荐
- Oracle计算时间差
Oracle计算时间差表达式 --获取两时间的相差豪秒数 select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - ...
- react-document-title
根据不同的路由改变文档的title 使用该组件: import ReactDocumentTitle from 'path/ReactDocumentTitle' render() { return ...
- oracle技术总结
http://www.cnblogs.com/jimeper/ http://blog.csdn.net/dragonxiangfu http://www.boobooke.com/bbs/threa ...
- 使用OnScrollListener回调处理自己主动载入很多其它
首先来分析下OnScrollListener的回调. new OnScrollListener() { boolean isLastRow = false; @Override public void ...
- linux路由表解析
1 格式 Destination 这个和Genmask一起构成目标网络.路由是路由到目标网络,知道目标网络就可以到达目标路由器,然后在该网络中找到目标机器. Gateway 网关,数据包的下一跳.比如 ...
- Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
Content-Type https://tools.ietf.org/html/rfc7231#section-3.1.1.5 https://tools.ietf.org/html/rfc7231 ...
- UVA11324 The Largest Clique —— 强连通分量 + 缩点 + DP
题目链接:https://vjudge.net/problem/UVA-11324 题解: 题意:给出一张有向图,求一个结点数最大的结点集,使得任意两个结点u.v,要么u能到达v, 要么v能到达u(u ...
- UVALive3126 Taxi Cab Scheme —— 最小路径覆盖
题目链接:https://vjudge.net/problem/UVALive-3126 题解: 最小路径覆盖:即在图中找出尽量少的路径,使得每个结点恰好只存在于一条路径上.其中单独一个点也可以是一条 ...
- YTU 2907: 类重载实现矩阵加法
2907: 类重载实现矩阵加法 时间限制: 1 Sec 内存限制: 128 MB 提交: 345 解决: 164 题目描述 编写矩阵类Matrix,实现两个2x3矩阵相加.主函数已给定. 输入 两 ...
- Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate
Silverlight实用示例 - DataGrid行详细信息的绑定DataGrid.RowDetailsTemplate 2012-12-28 21:04 来源:博客园 作者:chengxingli ...