bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
2015-10-05 15:29
501 查看
状压dp一直是弱项啊。。。
#include<stdio.h> #include<algorithm> using namespace std; int n,m,k; int val[2000]; int f[1000000]; bool check(int x) { int cnt=0; while(x) { cnt+=(x&1); x=x>>1; } if(cnt>k)return false; return true; } int main() { scanf("%d %d %d",&n,&m,&k); for(int i=1;i<=n;i++) { int x; scanf("%d",&x); while(x--) { int a; scanf("%d",&a); val[i]|=(1<<(a-1)); } } for(int i=1;i<=n;i++) { for(int j=(1<<m)-1;j>=0;j--)//一定要倒序,正序会有一个取好几遍的情况 { f[j|val[i]]=max(f[j|val[i]],f[j]+1); } } int ans=0; for(int i=0;i<(1<<m);i++) { if(check(i))ans=max(ans,f[i]); } printf("%d\n",ans); }
相关文章推荐
- 基于Android中dp和px之间进行转换的实现代码
- Android中dip、dp、sp、pt和px的区别详解
- LFC1.0.0 版本发布
- Android px、dp、sp之间相互转换
- android中像素单位dp、px、pt、sp的比较
- Android对px和dip进行尺寸转换的方法
- Android根据分辨率进行单位转换-(dp,sp转像素px)
- android 尺寸 dp,sp,px,dip,pt详解
- DP问题各种模型的状态转移方程
- POJ-1695-Magazine Delivery-dp
- nyoj-1216-整理图书-dp
- TYVJ1193 括号序列解题报告
- 对DP的一点感想
- TYVJ上一些DP的解题报告
- soj1005. Roll Playing Games
- 01背包问题
- LeetCode之Maximum Product Subarray
- DP Flow
- zoj3605 Find the Marble(三维dp)
- Word Break I,II, Triangle,Palindrome Partitioning 动态规划 DP