蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具。身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m个玩具。已知玩具商店一共卖 k种玩具,编号为 1,2,3,...k,你让每个小朋友把想玩的玩具编号都写在了纸上。你希望满足尽可能多的小朋友的需求,请计算出最多能满足多少个小朋友的玩具需求。

输入格式

第一行,输入三个整数 n,m,k(1≤n≤100,1≤m≤k≤15),中间用空格分开。

接下来n行,第 i+1(0≤i<n)行的第一个数字 ai代表第i个小朋友想玩的玩具数量,接下来有ai个数字,代表这ai个玩具的编号。

输出格式

输出一个整数,表示最多能满足多少小朋友的玩具需求。

样例输入

5 3 5
2 1 4
0
2 3 1
3 2 3 4
2 4 5

样例输出

3
#include<iostream>
#include<cmath>using namespace std;int child[101];int main(){int n,m,k;int max=0;cin>>n>>m>>k;for(int i=0;i<n;i++){int t;cin>>t;int sum=0;while(t--){int a;cin>>a;sum+=(1<<(a-1));/*二进制第j位是1表示第i个小朋友需要玩具j*/ }child[i]=sum;}for(int i=0;i<(1<<k);i++){int count = 0;int sum=0;for(int j=0;j<k;j++){if(i&(1 << j)) count++;}if(count>m) continue;/*最多只能买m个玩具*/for(int j=0;j<n;j++){if((i|child[j]) == i) sum++;/*按位与可以把选取的但是当前孩子不需要的变成1并与选取的比较,例如,选取的i为11100,当前孩子需要的为11000,此时满足条件,需要进行按位与变成11100与i比较*/}if(sum>=max) max=sum;}cout<<max<<endl;return 0;
}

这道题的代码主要用了二进制枚举的思想,

用二进制的每一位表示选取状态,1表示选取,0表示未选取,

大概这个样子:

for(int i=0;i<(1<<n);i++){//表示枚举每一个状态for(int j=0;j<n;j++){//枚举该状态下每一位的数值if(i&(1 << j)) cout<<a[j];// 这里判断二进制 i 从右数第 j + 1 位是否为 1}

蓝桥杯:幼儿园买玩具相关推荐

  1. 幼儿园买玩具_二进制枚举

    . 幼儿园买玩具 蒜厂幼儿园有 nn 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mm 个玩具.已知玩具商店一共卖 kk 种玩具,编号为 ...

  2. 幼儿园买玩具(暴力破解)

    蒜厂幼儿园有 nnn 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mmm 个玩具.已知玩具商店一共卖 kkk 种玩具,编号为 1,2,3, ...

  3. 【暴力枚举】二进制枚举-幼儿园买玩具

    [暴力枚举]二进制枚举-幼儿园买玩具 #include<iostream> #include<cstring> using namespace std; int main(){ ...

  4. 计蒜客-19 幼儿园买玩具

    蒜厂幼儿园有 nnn 个小朋友,每个小朋友都有自己想玩的玩具. 身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mmm 个玩具. 已知玩具商店一共卖 kkk 种玩具,编号为 1,2, ...

  5. C++题解:幼儿园买玩具

    目录 题目 题解 懂了的话就点个赞哦~没懂就看到懂为止呗~ 题目 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具 ...

  6. 计蒜客习题:幼儿园买玩具

    问题描述 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具.已知玩具商店一共卖 k 种玩具,编号为 1,2,3,- ...

  7. 计蒜客 幼儿园买玩具

    蒜厂幼儿园有 n个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m个玩具.已知玩具商店一共卖 kk 种玩具,编号为 1,2,3,...k,你让 ...

  8. 计蒜客-幼儿园买玩具(java实现)

    蒜厂幼儿园有n个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m个玩具.已知玩具商店一共卖k种玩具,编号为1,2,3...k,你让每个小朋友想玩 ...

  9. 二进制枚举:幼儿园买玩具

    问题描述 蒜厂幼儿园有n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m 个玩具.已知玩具商店一共卖k种玩具,编号为1,2,3,-k,你让每 ...

最新文章

  1. 如何成为自己所在领域内前1%的顶尖人才? 凤凰科技 09-29 07:42 原标题:如何成为自己所在领域内前1%的顶尖人才? 有时你会觉得,可能你永远也实现自己的梦想。你清楚地知道自己想做什么,但有
  2. 映射递归循环-约瑟夫环问题递归解法的一点理解
  3. ESXI添加存储器步骤
  4. 数据结构 堆中的路径(最小堆)
  5. php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!
  6. WinDbg+Rotor解析WinForm调用堆栈及实现
  7. (c语言)求x的y次方
  8. 老杨和驳客都在胡言乱语——千条道理不如一个事实
  9. iOS 10.0的网络问题:设置使用无线局域网与蜂窝移动的应用
  10. c++编写乘法口诀表
  11. 红蜘蛛多媒体软件怎么停---超简单
  12. 融资预审复核 代码梳理
  13. 银河英雄传说 ← 带权并查集
  14. 输入一个整数,判断是奇数还是偶数?
  15. linux中的Ctrl+C的
  16. 使用面包板和轻触按钮与小龟机器人主控板DIY电子琴
  17. Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]
  18. iOS开发 高级绘图
  19. css 文字溢出隐藏 css 文字溢出隐藏无效解决办法
  20. 目标跟踪中的卡尔曼滤波和匈牙利算法解读。

热门文章

  1. Java jdk14.0.1安装简单步骤
  2. python基于PHP+MySQL的健身俱乐部网站的设计与实现
  3. (附源码)计算机毕业设计ssm垂钓俱乐部网站
  4. wineqq之deepin wine系列(Linux版QQ总算有了完美无暇的方案)
  5. optimization method (理论)
  6. jenkin swindows启动_Windows环境下实现Jenkins自动化部署
  7. 基于SpringBoot的淘宝商城系统
  8. 常用软件------系统必备软件
  9. 从粗放式到精益化编程
  10. 【精品,你所不知道的IT高薪】【转贴】清华生7天猎头生活的发现!