细菌(2009jxd)

Time Limit:1000MS  Memory Limit:65536K
Total Submit:3 Accepted:1

Description

近期,农场出现了D (1<= D <=15)种细菌。John 要从他的 N (1<= N <=1,000)头奶牛中尽可能多地选些产奶。但是如果选中的奶牛携带了超过 K (1<= K <=D)种不同细菌,所生产的奶就不合格。请你帮助John 计算出最多可以选择多少头奶牛。

Input

第一行:三个整数 N, D, K
下面N行:第i行表示一头牛所携带的细菌情况。第一个整数 di 表示这头牛所携带的细菌种类数,后面di个整数表示这些细菌的各自种类标号。

Output

只一个数 M,最大可选奶牛数。

Sample Input

6 3 2
0
1 1
1 2
1 3
2 2 1
2 2 1

Sample Output

5

选择:
1,2,3,5,6
只有1#和2#两种细菌

反思:

这题应该是最简单了的,简单一个搜索就行了。

#include<iostream>#include<cstdio>#include<cstring>using namespace std;

int n,d,k,ans=0,ni,tmp;bool bo[100000];int cow[1001];

int check(int i){ int t=0; while(i>0) {     int p=i&-i;      t++;        i-=p;    } return t;}

int main(){ freopen("disease.in","r",stdin);  freopen("disease.out","w",stdout);

  memset(bo,true,sizeof(bo));   memset(cow,0,sizeof(cow));    scanf("%d%d%d",&n,&d,&k);

  for(int i=1;i<=n;++i)  {     scanf("%d",&ni);        for(int j=0;j<ni;++j)       {         scanf("%d",&tmp);           cow[i]+=(1<<(tmp-1));     } }

  for(int i=1;i<=(1<<d);++i)   {     if(check(i)>k)         bo[i]=false; }

  for(int i=1;i<=(1<<d);++i)   {     int jl=0;        if(bo[i])     for(int j=1;j<=n;++j)      {         int tt=(cow[j]&i);           if(tt==cow[j])              ++jl;       }     if(jl>ans)         ans=jl;  }

/*    for(int i=1;i<=(1<<d);++i)   if(bo[i])     cout<<i<<endl;*/

  printf("%d",ans);   return 0;}

细菌(disease)解题报告 - 搜索与回朔相关推荐

  1. 解题报告 (十四) 数位DP

    文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...

  2. [LeetCode解题报告] 741. 摘樱桃

    [LeetCode解题报告] 741. 摘樱桃 一. 题目 1. 题目描述 2. 原题链接 二. 解题报告 1. 思路分析 2. 复杂度分析 3. 代码实现 三. 本题小结 一. 题目 1. 题目描述 ...

  3. 2016-11-17试题解题报告

    2016-11-17试题解题报告 By shenben 水灾(sliker.cpp/c/pas) 1000MS  64MB 大雨应经下了几天雨,却还是没有停的样子.土豪CCY刚从外地赚完1e元回来,知 ...

  4. 东南大学2004年程序设计第一届初赛解题报告

    东南大学2004年第一届逻辑算法大赛初赛解题报告 农夫三拳@seu                                                                    ...

  5. 10.30 NFLS-NOIP模拟赛 解题报告

    总结:今天去了NOIP模拟赛,其实是几道USACO的经典的题目,第一题和最后一题都有思路,第二题是我一开始写了个spfa,写了一半中途发现应该是矩阵乘法,然后没做完,然后就没有然后了!第二题的暴力都没 ...

  6. noip2010乌龟棋解题报告

    乌龟棋解题报告 题目描述 Description 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一 的起点,第N格是终点, ...

  7. 2016.7.15 NOIP2014模拟试题解题报告(又名:方克顺和他的正余弦朋友们(

    我发现自从我开始写博客以后OI成绩上升很明显啊orzzz,继续保持继续保持(然而昨晚上开夜车到十二点,感觉这次没发挥好)(下次没考好就尴尬了)(所以一定要考好!),嗯这次考得还是很不错的,也深入思考了 ...

  8. 程序设计算法竞赛高级——练习1解题报告

    程序设计算法竞赛高级--练习1解题报告 1001 寒冰王座 Problem Description 不死族的巫妖王发工资拉,死亡骑士拿到一张N元的钞票(记住,只有一张钞票),为了防止自己在战斗中频繁的 ...

  9. 【解题报告】2021牛客寒假算法基础集训营4

    [解题报告]2021牛客寒假算法基础集训营4 前面的话 A :九峰与签到题 | 模拟 (签到题) B: 武辰延的字符串 | exKMP D :温澈滢的狗狗 | 二分 E: 九峰与子序列 | d p d ...

最新文章

  1. 一次 Jar 包升级引发的血案 amp; 解决
  2. 【ASP的重生】KnifeCMS.ASP跨平台支持包(支持Unix/Linux)
  3. 树中数据间关系整理~节点关系及用途解析及常用术语整理
  4. 维护隐私 搞定最近打开文档的显示
  5. 3步理清Python数据分析关键点,新手必看
  6. 朝鲜时蔬(分数据点写算法+毒瘤数学)
  7. 年初至今主动权益基金平均亏损2.96%
  8. 安装oracle12.1  32位客户端时,出现[INS-10102]未能初始化安装程序错误
  9. android自动创建快捷方式,Android开发之生成桌面快捷方式细则(原创)
  10. IBM:利用闪存提速实时分析 掘金大数据
  11. Protobuf学习 - 入门(转)
  12. Mybatis sqlsession解析
  13. 快速导入十亿数据到hugegraph图数据库
  14. Matlab绘制散点图(scatter函数)
  15. 最简单的三步yum配置阿里源
  16. QTreeView宽度
  17. python 端口扫描_使用 python-nmap 进行端口扫描
  18. 在web服务器上运行html文件,再调用cgi打开txt文件
  19. 《黑客与画家:硅谷创业之父Paul Graham文集》----读书笔记
  20. bzoj1778 驱赶猪猡/luogu2937 赶小猪

热门文章

  1. 如何在Mac上查找WiFi密码并在iPhone上共享它?
  2. source insight 4.0 闪退问题
  3. Android4.4之后休眠状态下Alarm不准时的问题
  4. 手机扫码传文件免安装免流工具教程
  5. Python 裁剪九宫格图片 —— 筑梦之路
  6. EXCEL工资表一键转化工资条短信如何操作
  7. 第二篇 在Arduino IED环境下测试ESP8266模块与外网通信
  8. Spring 概述及优点
  9. 成都精灵云-C++开发工程师-技术面经(30min左右)
  10. git-cz git commit 定制提交规范