Gym-100712J 桶排序思想&反向思维
来源:互联网 发布:html5shiv.min.js下载 编辑:程序博客网 时间:2024/04/28 11:12
给一群儿童分配糖果,每位儿童只能一包,满足一些条件,“公平分配”:
相同年龄的分一样多,年龄大的必须分的比前者多。
三行,第二行是儿童的年龄,第三行是包里的糖果
思路: 数据够小,儿童年龄只在5到15,直接暴力,利用桶排序的思想,把儿童和糖果的数量存在a和b数组中,下标即是他们的标号,这样从1开始,默认就排了序。
从5到15岁数遍历,下标a是从5开始,b是从1开始,
这里从反面开始,只要b的数量小于当前当前儿童年龄i的数量(相同糖果的数量只能等于或者多于同一年龄儿童的数量),糖果数量就要前进,只要满住,儿童年龄前进一位。如果超过糖果数量最大50,则没找到满足,退出打印No,否则遍历完15岁,即全部找到。
#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;const int maxn = 1000+10;int a[maxn];int b[maxn];int main(){ // freopen("in.txt","r",stdin); int t,t1,t2; scanf("%d",&t); while(t--) { int n,m; memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); int dd = 0; cin>>n>>m; while(n--) { cin>>t1; a[t1]++; } while(m--) { cin>>t2; b[t2]++; } int pos = 0; for(int i = 5; i <= 15; i++) { if(a[i]) { pos++; while(pos <= 50 && b[pos] < a[i]) pos++; if(pos>50) { dd = 1; } } } if(dd) puts("NO"); else puts("YES"); } return 0;}
0 0
- Gym-100712J 桶排序思想&反向思维
- Gym 101470J Stange Antennas【思维】
- Gym-100712J-Candy
- Gym 100712J Candy
- Codeforces Gym 101061 J Cola (巧妙的思维题)
- GYM 100712 J.Candy(水~)
- Gym 100685 J Just Another Disney Problem 趣题,稳定排序
- Gym 100685J Just Another Disney Problem(交互/排序)
- 思维-Gym
- Gym 100733J Summer Wars 题解:灵活运用扫描线的思想
- Gym 100917 J. Judgement
- Gym 100637J
- Gym 101147.J
- Gym 101243.J
- Gym 101246.J
- Gym 101343.J
- Gym 101617J dp
- Gym 101503I Just Matrix【思维+拓扑排序】好题~
- 第十一周:[Leetcode]139. Word Break
- 文章标题
- IDEA中文显示口口口口口...解决方法
- Linux的启动和关机的流程、引导加载程序
- C#实现二分法查找算法
- Gym-100712J 桶排序思想&反向思维
- PE解析器的编写(四)——数据目录表的解析
- 关系型数据库ACID特性
- ADFS 更新证书 Office365
- Binder机制-简单用法(一)
- 利用jquery ui实现微信底部的二级下拉菜单
- CenOS7上网络组team的实现
- 系列:1到1000中包含8的个数
- Kubernetes1.6安装指南 (二进制文件方式)