HDU 1992
来源:互联网 发布:怎么登陆淘宝卖家中心 编辑:程序博客网 时间:2024/05/01 22:59
思路:灵感来自于数字逻辑时序电路的状态转移法,具体如下:
1. 状态编码:设待补充部分为:col列加上余列X,其中X有0000、1100、0011、0110、1001五种状态(1表示有,0表示无),进一步状态压缩为0-4五个数;2. 状态转移:通过递归
3. 注意:为保证效率,使用动态规划
#include<iostream> #include<algorithm>#include<cstring>#include<cstdio> using namespace std;const int M[5][5] = {{3, 1, 1, 1, 0},{1, 0, 1, 0, 0},{1, 1, 0, 0, 0},{1, 0, 0, 0, 1},{0, 0, 0, 1, 0}};int DP[1000][5];// DP[i][j]表示拼成【i列加上j对应的余列】的情况数int W;int DFS(int col, int state){if(col == 0 && state == 0)return 1;if(col <= 0)return 0;int& ans = DP[col][state];if(ans > 0)return ans;for(int i = 0; i < 5; i++){if(M[state][i]){ans += DFS(col-1, i); if(M[state][i] == 3)ans += DFS(col-2, i);}}return ans;}int main(){memset(DP, 0, sizeof(DP));DFS(1000, 0);int T;scanf("%d", &T);for(int kase = 1; kase <= T; kase++){printf("%d ", kase);scanf("%d", &W);printf("%d\n", DFS(W, 0));}}
1 0
- hdu 1992
- HDU 1992
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- 正确打开Github 的方法
- 学习u3d的几个工具和文档
- 开源免费,捷微H5活动平台(微砍价、九宫格、斧头帮、摇一摇送卡券) h5huodong.com
- 栏目列表调用的是顶级栏目,如果需要子栏目页面展开父栏目分类则可以用下边的代码
- 浅谈跨进程传递的数据
- HDU 1992
- android getLocationInWindow()的小秘密
- java I/O 学习笔记2 ,线程池
- Miller-Rabin 素数测试
- maven打war包以及maven工程调用别人生成的jar包
- CHtmlView 处理/禁止 JavaScript 脚本错误!
- 高级并发学习之Samphere同步工具学习
- 怎么使用 JavaScript 将网站后台的数据变化实时更新到前端?
- javascript中的window.location.search方法简介