bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
Posted DUXT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理相关的知识,希望对你有一定的参考价值。
思路:状压dp,枚举疾病的集合,然后判断一下可行性即可。
#include<bits/stdc++.h> using namespace std; #define maxs 400000 #define maxn 1900 int n,d,k; int a[maxn],f[maxs],num[maxs]; int main(){ scanf("%d%d%d",&n,&d,&k); for (int i=1;i<(1<<d);i++) num[i]=num[i>>1]+(i&1); for (int i=1,len;i<=n;i++){ scanf("%d",&len); for (int j=1,x;j<=len;j++) scanf("%d",&x),a[i]+=(1<<(x-1)); } int ans=0; for (int i=1;i<=n;i++) for (int j=(1<<d)-1;j>=0;j--) if (num[j|a[i]]<=k) f[j|a[i]]=max(f[j|a[i]],f[j]+1),ans=max(ans,f[j|a[i]]); printf("%d\\n",ans); return 0; }
以上是关于bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理的主要内容,如果未能解决你的问题,请参考以下文章
bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理
bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理
bzoj 1689: [Usaco2005 Open] Muddy roads 泥泞的路
bzoj1747[Usaco2005 open]Expedition 探险*