Nyoj 515 完全覆盖 II
来源:互联网 发布:魔域单机版源码 编辑:程序博客网 时间:2024/05/19 04:27
详细可以参考:http://blog.csdn.net/hearthougan/article/details/22077391
#include <iostream>#include <cstdio>#include <cstring>using namespace std;typedef long long LL;LL dp[12][1<<12];int m, k;void Pre_Slove(int j, int curstatus){ if(j >= m) { dp[0][curstatus]++; return ; } if(j+1 <= m)//要么不放 Pre_Slove(j+1, curstatus<<1); if(j+2 <= m)//要么横放 Pre_Slove(j+2, curstatus<<2|3); return ;}void DFS(int j, int curstatus, int prestatus){ if(j >= m) { dp[k][curstatus] += dp[(k+1)%2][prestatus]; return ; } if(j+1 <= m) { DFS(j+1, curstatus<<1|1, prestatus<<1); DFS(j+1, curstatus<<1, prestatus<<1|1); } if(j+2 <= m) DFS(j+2, curstatus<<2|3, prestatus<<2|3); return ;}int main(){ int n; while(scanf("%d %d", &n, &m) && (m+n)) { if(m*n % 2) { printf("0\n"); continue ; } if(n < m) { n ^= m; m ^= n; n ^= m; } memset(dp, 0, sizeof(dp)); Pre_Slove(0, 0); for(int i = 2; i <= n; ++i) { k = (i+1)%2; DFS(0, 0, 0); memset(dp[(k+1)%2], 0, sizeof(dp[0])); } printf("%lld\n", dp[(n+1)%2][(1<<m) - 1]); } return 0;}
0 0
- Nyoj 515 完全覆盖 II
- NYOJ 515 完全覆盖 II (状态压缩dp)
- nyoj 328 完全覆盖
- NYOJ 题目328 完全覆盖(数学)
- 完全覆盖 II 之状态压缩
- nyoj 12 喷水装置(二)【贪心】+【区间完全覆盖覆盖】
- 完全覆盖
- 完全覆盖
- 完全覆盖
- 完全覆盖
- NYOJ - 无线网络覆盖
- NYOJ 610 定长覆盖
- NYOJ-无线网络覆盖-199
- NYOJ 45 棋盘覆盖
- NYOJ-199 无线网络覆盖
- NYOJ 199 无线网络覆盖
- 棋盘覆盖(nyoj 45)
- NYOJ 610 定长覆盖
- LeetCode 066 Plus One
- Oc单例模式,委托模式
- PHP 快速搭建生产环境之XAMPP版本历史
- 完整版本 .vimrc for python env
- tomcat常用配置
- Nyoj 515 完全覆盖 II
- ofbiz soap webservice
- 内存管理
- linux几个概念
- 宏 的操作
- POJ 2441 Arrange the Bulls / 状态压缩DP
- 两个链表的公共链表
- 64位weblogic11g安装
- mybaties基础教程之三:MyBatis主配置文件