蓝桥杯:幼儿园买玩具
蒜厂幼儿园有 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}
蓝桥杯:幼儿园买玩具相关推荐
- 幼儿园买玩具_二进制枚举
. 幼儿园买玩具 蒜厂幼儿园有 nn 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mm 个玩具.已知玩具商店一共卖 kk 种玩具,编号为 ...
- 幼儿园买玩具(暴力破解)
蒜厂幼儿园有 nnn 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mmm 个玩具.已知玩具商店一共卖 kkk 种玩具,编号为 1,2,3, ...
- 【暴力枚举】二进制枚举-幼儿园买玩具
[暴力枚举]二进制枚举-幼儿园买玩具 #include<iostream> #include<cstring> using namespace std; int main(){ ...
- 计蒜客-19 幼儿园买玩具
蒜厂幼儿园有 nnn 个小朋友,每个小朋友都有自己想玩的玩具. 身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 mmm 个玩具. 已知玩具商店一共卖 kkk 种玩具,编号为 1,2, ...
- C++题解:幼儿园买玩具
目录 题目 题解 懂了的话就点个赞哦~没懂就看到懂为止呗~ 题目 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具 ...
- 计蒜客习题:幼儿园买玩具
问题描述 蒜厂幼儿园有 n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m 个玩具.已知玩具商店一共卖 k 种玩具,编号为 1,2,3,- ...
- 计蒜客 幼儿园买玩具
蒜厂幼儿园有 n个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买 m个玩具.已知玩具商店一共卖 kk 种玩具,编号为 1,2,3,...k,你让 ...
- 计蒜客-幼儿园买玩具(java实现)
蒜厂幼儿园有n个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m个玩具.已知玩具商店一共卖k种玩具,编号为1,2,3...k,你让每个小朋友想玩 ...
- 二进制枚举:幼儿园买玩具
问题描述 蒜厂幼儿园有n 个小朋友,每个小朋友都有自己想玩的玩具.身为幼儿园园长的你决定给幼儿园买一批玩具,由于经费有限,你只能买m 个玩具.已知玩具商店一共卖k种玩具,编号为1,2,3,-k,你让每 ...
最新文章
- 如何成为自己所在领域内前1%的顶尖人才? 凤凰科技 09-29 07:42 原标题:如何成为自己所在领域内前1%的顶尖人才? 有时你会觉得,可能你永远也实现自己的梦想。你清楚地知道自己想做什么,但有
- 映射递归循环-约瑟夫环问题递归解法的一点理解
- ESXI添加存储器步骤
- 数据结构 堆中的路径(最小堆)
- php签入html出来的影响seo吗_搜索引擎优化_SEO必备6大技能+SEO误区讲解!
- WinDbg+Rotor解析WinForm调用堆栈及实现
- (c语言)求x的y次方
- 老杨和驳客都在胡言乱语——千条道理不如一个事实
- iOS 10.0的网络问题:设置使用无线局域网与蜂窝移动的应用
- c++编写乘法口诀表
- 红蜘蛛多媒体软件怎么停---超简单
- 融资预审复核 代码梳理
- 银河英雄传说 ← 带权并查集
- 输入一个整数,判断是奇数还是偶数?
- linux中的Ctrl+C的
- 使用面包板和轻触按钮与小龟机器人主控板DIY电子琴
- Bugku-CTF之PHP_encrypt_1(ISCCCTF) [fR4aHWwuFCYYVydFRxMqHhhCKBseH1dbFygrRxIWJ1UYFhotFjA=]
- iOS开发 高级绘图
- css 文字溢出隐藏 css 文字溢出隐藏无效解决办法
- 目标跟踪中的卡尔曼滤波和匈牙利算法解读。
热门文章
- Java jdk14.0.1安装简单步骤
- python基于PHP+MySQL的健身俱乐部网站的设计与实现
- (附源码)计算机毕业设计ssm垂钓俱乐部网站
- wineqq之deepin wine系列(Linux版QQ总算有了完美无暇的方案)
- optimization method (理论)
- jenkin swindows启动_Windows环境下实现Jenkins自动化部署
- 基于SpringBoot的淘宝商城系统
- 常用软件------系统必备软件
- 从粗放式到精益化编程
- 【精品,你所不知道的IT高薪】【转贴】清华生7天猎头生活的发现!