poj2411
来源:互联网 发布:乐清知临寄宿学校招生 编辑:程序博客网 时间:2024/06/04 19:15
这道题是参照邝斌的博客写的,因为之前接触的比较少嘛
题意:
用1X2的小矩形填满nXm的大矩形,有多少种的方案。
解法:
1、递推关系: dp[i][j] 表示前i-1行填满,第i行状态为j时的方案。
dp[i][j]=sum{ dp[i-1][u] }
2、 从(i-1,u)状态到达(i,j)状态具有唯一性
代码如下:
#include <iostream>#include <string.h>#include <stdio.h>#include <algorithm>using namespace std;bool check(int s)//判断s有没有奇数个连续的1{ int ret=0; while(s) { if(s&1)ret++; else { if(ret&1)return false; ret=0; } s>>=1; } if(ret&1)return false; return true;}long long dp[12][2050];int main(){ int n,m; while(scanf("%d%d",&n,&m)==2) { if(n==0 && m==0)break; int tot=(1<<m); memset(dp,0,sizeof(dp)); for(int i=0;i<tot;i++) if(check(i)) dp[1][i]=1; for(int i=1;i<n;i++) for(int j=0;j<tot;j++) if(dp[i][j]!=0) { for(int k=0;k<tot;k++) if( (j|k)==tot-1 && check(j&k) ) dp[i+1][k]+=dp[i][j]; } printf("%I64d\n",dp[n][tot-1]); } return 0;}
0 0
- poj2411
- poj2411
- poj2411
- poj2411
- POJ2411
- POJ2411
- Poj2411 状态压缩
- POJ2411 状态DP...
- POJ2411 Mondriaan's Dream
- POJ2411--Mondriaan's Dream
- poj2411 DP压缩
- POJ2411 Mondriaan's Dream
- POJ2411 状态压缩DP
- poj2411(状压dp)
- poj2411 轮廓线dp
- poj2411 状态压缩dp
- poj2411 Mondriaan's Dream
- POJ2411(状态压缩DP)
- 6.1 Android Framework - BitmapDrawable
- Linux 防火墙开放特定端口 (iptables)
- 1004 Problem E 今年暑假不AC
- 写友元函数时出现的错误---1IntelliSense: class "point" 没有成员 "operator<<"
- qt5.6
- poj2411
- awk使用总结
- 孙敬哲的c++上机实验2-1
- 算法之图搜索算法(一)
- 第四次上机实践项目-项目1-三角形类椎体-(4)
- 【机房重构】——VS2013程序打包
- 文章标题
- C# WinForm程序退出的方法
- 算法之排列与组合算法