Description

Alas! A set of D (1 <= D <= 15) diseases (numbered 1..D) is running through the farm. Farmer John would like to milk as many of his N (1 <= N <= 1,000) cows as possible. If the milked cows carry more than K (1 <= K <= D) different diseases among them, then the milk will be too contaminated and will have to be discarded in its entirety. Please help determine the largest number of cows FJ can milk without having to discard the milk.

Input

* Line 1: Three space-separated integers: N, D, and K * Lines 2..N+1: Line i+1 describes the diseases of cow i with a list of 1 or more space-separated integers. The first integer, d_i, is the count of cow i's diseases; the next d_i integers enumerate the actual diseases. Of course, the list is empty if d_i is 0. 有N头牛,它们可能患有D种病,现在从这些牛中选出若干头来,但选出来的牛患病的集合中不过超过K种病.

Output

* Line 1: M, the maximum number of cows which can be milked.

Sample Input

6 3 2
0---------第一头牛患0种病
1 1------第二头牛患一种病,为第一种病.
1 2
1 3
2 2 1
2 2 1

Sample Output

5

OUTPUT DETAILS:

If FJ milks cows 1, 2, 3, 5, and 6, then the milk will have only two
diseases (#1 and #2), which is no greater than K (2).

 
无脑状压
水~
//Serene
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<cstdio>
#include<cmath>
using namespace std;
const int maxn=1000+10,maxd=17,maxs=(1<<15)+10;
int n,d,k,mi[maxd],ds[maxn],nowans,ans; int aa;char cc;
int read() {
aa=0;cc=getchar();
while(cc<'0'||cc>'9') cc=getchar();
while(cc>='0'&&cc<='9') aa=aa*10+cc-'0',cc=getchar();
return aa;
} bool ok(int x) {
int tot=0;
while(x) {
x-=(x&(-x));
tot++;
}
return tot<=k;
} int main() {
n=read();d=read();k=read();
mi[1]=1;int x,y;
for(int i=2;i<=d;++i) mi[i]=mi[i-1]<<1;
for(int i=1;i<=n;++i) {
x=read();
for(int j=1;j<=x;++j) {
y=read();
ds[i]+=mi[y];
}
}
for(int x=0;x<(1<<d);++x) if(ok(x)){
nowans=0;
for(int j=1;j<=n;++j) {
y=(x|ds[j]);
if(y==x) nowans++;
}
ans=max(ans,nowans);
}
printf("%d",ans);
return 0;
}

  

最新文章

  1. js中使用new Date(str)创建时间对象不兼容firefox和ie的解决方式
  2. 利用Hexo搭建个人博客-环境搭建篇
  3. python高级之多线程
  4. java中的日期操作Calendar和Date
  5. MVC之前的那点事儿系列(1):进入CLR
  6. TopCoder SRM 596 DIV 1 250
  7. windows 编程中的常见bug
  8. EF实体框架之CodeFirst三
  9. JFrame 实现全屏透明背景
  10. 转: 通过不到100行Go代码打造你自己的容器
  11. uglifyjs note
  12. 关于bootstrap 在MVC里 模态框里加载iframe页面做编辑的时候
  13. random模块函数分析(一)
  14. node学习笔记(二)(ajax方式向node后台提交数据)
  15. HTML5商城开发五 实现返回页面顶部
  16. 输入时间参数获取rds备份集信息
  17. vue 基础重要组件 模板指令 事件绑定
  18. GlusterFS学习
  19. android_自定义布局例子
  20. php curl上传文件$_FILES为空问题

热门文章

  1. Shell执行SQL,并存入变量
  2. HTML入门:Tag学习
  3. 启动easy-mock
  4. Leetcode500.Keyboard Row键盘行
  5. 解决C++ builder 4.0编译后的程序在某些计算机上运行出现&quot;EAccessViolation&quot; 的错误
  6. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)
  7. ajax--表单带file数据提交报错Uncaught TypeError: Illegal invocation
  8. 深入了解MVC(转)
  9. 2019.8.13 NOIP模拟测试19 反思总结
  10. 2019.7.29 NOIP模拟测试10 反思总结【T2补全】