[BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
2017-09-20 21:39
507 查看
题目:
我是超链接题解:
1A+自己的思路满意这道题就是一眼状压
1、D<=15
2、一种病得多少次都没有问题啊
很朴素的想法:f[i]表示状态为i最多选几头牛,有d种病,我在d中选c种(组合)病,选出可以得这种病的牛就ok了
代码:
#include <cstdio> #include <cstring> #include <iostream> using namespace std; int n,d,k,cow[1005],ans; void dfs(int t,int y,int la) { int i; if (t>k) { int gs=0; for (i=1;i<=n;i++) if ((y&cow[i])==cow[i]) gs++; ans=max(ans,gs); return; } for (i=la;i<=d;i++) dfs(t+1,y|(1<<i-1),i+1); } int main() { int i; scanf("%d%d%d",&n,&d,&k); for (i=1;i<=n;i++) { int id,x; scanf("%d",&id); while (id--) { scanf("%d",&x); cow[i]|=1<<x-1; } } dfs(1,0,1); printf("%d",ans); }
相关文章推荐
- 【BZOJ】1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压DP)
- 【BZOJ1688】[Usaco2005 Open]Disease Manangement 疾病管理 状压DP
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压)
- 【bzoj1688】[USACO2005 Open]Disease Manangement 疾病管理 状态压缩dp+背包dp
- [BZOJ1688] [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- BZOJ 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 dfs
- BZOJ1688 [Usaco2005 Open]DiseaseManangement 疾病管理
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压dp
- [Usaco2005 Open]Disease Manangement 疾病管理 BZOJ1688
- BZOJ1688: [Usaco2005 Open]Disease Manangement 疾病管理
- [BZOJ] 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- 【bzoj1688】[Usaco2005 Open]Disease Manangement 疾病管理
- bzoj 1688 [Usaco2005 Open]Disease Manangement 疾病管理
- 【状压dp】【bitset】bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理