bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 dfs
来源:互联网 发布:python股票量化分析 编辑:程序博客网 时间:2024/05/21 14:01
题意
给出n头牛和d种疾病,每一头牛都会有若干种疾病,问最多能选择多少头牛使得这些牛的疾病数不超过k。
n<=1000,k<=d<=15
分析
状压一下直接搜索选取哪些疾病然后O(n)扫一遍即可。
代码
#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#define N 2005using namespace std;int a[N],n,d,k,now,ans;void dfs(int x,int y){ if (x>d||y==k) { int s=0; for (int i=1;i<=n;i++) if ((a[i]|now)==now) s++; ans=max(ans,s); return; } dfs(x+1,y); now+=1<<(x-1); dfs(x+1,y+1); now-=1<<(x-1);}int main(){ scanf("%d%d%d",&n,&d,&k); for (int i=1;i<=n;i++) { int x; scanf("%d",&x); for (int j=1;j<=x;j++) { int y; scanf("%d",&y); a[i]|=1<<(y-1); } } dfs(1,0); printf("%d",ans); return 0;}
0 0
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 dfs
- BZOJ 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj 1688 [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压)
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- 1688: [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理
- [BZOJ1688] [Usaco2005 Open]Disease Manangement 疾病管理
- BZOJ1688: [Usaco2005 Open]Disease Manangement 疾病管理
- bzoj1688 [Usaco2005 Open]Disease Manangement 疾病管理
- [Usaco2005 Open]Disease Manangement 疾病管理
- 【bzoj1688】[Usaco2005 Open]Disease Manangement 疾病管理
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压DP)
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- bzoj1688: [Usaco2005 Open]Disease Manangement 疾病管理 状压dp
- [BZOJ1688][Usaco2005 Open]Disease Manangement 疾病管理(状压dp)
- Servlet初级
- js实现图片左右移动轮播
- 图之关键路径
- 新浪微博技术架构分析(一)
- 网络请求工具类WebServiceUtils
- bzoj 1688: [Usaco2005 Open]Disease Manangement 疾病管理 dfs
- USACO 3.1 Agri-Net 最短网络 (最小生成树)
- mount
- typeof
- Ajax提交表单报400 bad request错误
- 闭包
- I2C总线协议和控制器解析
- 求二范数C++代码
- ccf2014031