HUNAN 11560 Yangyang loves AC(二分+贪心)
http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11560&courseid=0
题意:总共有n天,每天yangyang都需要一个快乐值,有m个队友,每个队友都会给阳阳一个快乐值(为2的幂),并且只能给一次,如果某一天队友给的快乐值达到yangyang需要的快乐值那么这一天yangyang就是快乐的,统计最多快乐的天数。
思路:因为达到快乐的天数不要求连续,那么只要对需要的快乐值和队友给的快乐值分别排序,然后每次二分出一个快乐的天数x,判断能不能用m个数去满足它,所以把0到x的数加入优先队列,然后从m开始从大到小去覆盖优先队列的值.
1 #include<cstdio> 2 #include<queue> 3 #include<algorithm> 4 using namespace std; 5 6 int n,m,h[20010],p[20010]; 7 8 bool ok(int x) 9 { 10 priority_queue<int>que; 11 for(int i=0;i<x;i++) 12 que.push(h[i]); 13 int y=m; 14 while(!que.empty()) 15 { 16 y--; 17 if(y<0) break; 18 if(p[y]<que.top()) que.push(que.top()-p[y]); 19 que.pop(); 20 } 21 return que.empty(); 22 } 23 void solve() 24 { 25 int lb=0,ub=n; 26 int cnt=0; 27 while(lb<=ub) 28 { 29 int mid=(lb+ub)>>1; 30 if(ok(mid)) 31 { 32 lb=mid+1; 33 cnt=max(cnt,mid); 34 // printf("%d %d\n",cnt,lb); 35 } 36 else ub=mid-1; 37 } 38 printf("%d\n",cnt); 39 } 40 int main() 41 { 42 //freopen("a.txt","r",stdin); 43 while(~scanf("%d%d",&n,&m)) 44 { 45 for(int i=0;i<n;i++) scanf("%d",&h[i]); 46 for(int i=0;i<m;i++) scanf("%d",&p[i]); 47 sort(h,h+n); 48 sort(p,p+m); 49 solve(); 50 } 51 return 0; 52 }
转载于:https://www.cnblogs.com/nowandforever/p/4728290.html
HUNAN 11560 Yangyang loves AC(二分+贪心)相关推荐
- 洛谷P1182 数列分段 Section II(二分+贪心)
题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...
- 蒟蒻的第一篇博客CF1041C Coffee Break(二分+贪心+set)
CF1041C Coffee Break(二分+贪心+set) 描述 Recently Monocarp got a job. His working day lasts exactly mm min ...
- HDOJ 2037 今年暑假不AC 【贪心】
HDOJ 2037 今年暑假不AC [贪心] 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2037 给出n个电视节目的开始时间和结束时间, 要求合理安 ...
- leetcode:1488. 避免洪水泛滥【二分 + 贪心】
分析 先把可以抽干的位置记录下来,用sortedlist的q,方便删除 然后用dict记录某个湖之前是否出现过 如果出现过肯定有pre和now的位置 然后根据pre和now找到q中对应的idx,直接改 ...
- “师创杯”山东理工大学第九届ACM程序设计竞赛 热身赛 E.上色的纱雾【二分+贪心】
上色的纱雾 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 纱雾画画功力首屈一指,现在她 ...
- Hamburgers(二分+贪心)(又名: 比奇堡的汉堡节)
题目连接: 比奇堡的汉堡节 题目: 比奇堡一年一度的汉堡节到了,身为比奇堡皇家指定汉堡王牌店铺"蟹堡王"的独一无二(emm,好像只有一个=.=)的厨师海绵宝宝超超超超-级开心,因为 ...
- [USACO16JAN]Angry Cows S[二分+贪心]
题意:Bessie 设计了一款新游戏:Angry Cows.在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草.游戏的目标是使用一组奶牛引爆所有干草. N 捆干草排列在数轴上的不同位置.第 ...
- HDU 2037 今年暑假不AC【贪心】
今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】
题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...
最新文章
- java表或视图不存在_Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在...
- zendopcache代替APC效果不错
- js数据类型判断和数组判断
- 4G+宽带高歌猛进:移动双线虐杀联通
- 如何在Marketing Cloud里创建extension field扩展字
- python datetime datetime
- php in_array()函数
- inline-block的几个问题(还没解决)
- 基于springboot的药品商城系统
- 实现有管理功能的ASP留言板
- Excel如何实现聚光灯效果
- c语言行列坐标是先行后j,C语言课后习题参考答案
- 四叉树算法原理与实现
- 【Ydui.js】------ ydui.js 中的 util 中的方法讲解如何调用使用 例如:获取地址栏信息,js 倒计时,cookie, 获取图片地址等
- laravel的elixir和gulp用来对前端施工
- kmeans-用户分层
- 【OpenCV】-重映射
- #6.3四维理论的数学模式
- 一版张小龙没见过的微信『高仿Flutter版微信』
- 怎么靠网络的正常渠道赚钱?
热门文章
- oracle 指定格式化,Oracle中的格式化函数
- 读取nas_NAS怎么玩?除了存放小姐姐,它竟然还有这些功能
- 后台系统可扩展性学习笔记(十一)Database Denormalization
- 霍夫码编码(一种不等长,非前缀编码方式)
- 2016年湖南省第十二届大学生计算机程序设计竞赛
- HDU 1402——A * B Problem Plus
- linux 用户管理以及其他命令
- 怎样检测mysql5.5安装成功_64位wiN7系统中装配MySQL5.5.17(测试安装成功哦!)
- 【剑指offer】_12 数组中的逆序对
- 每日一题:leetcode81.搜索旋转排序数组Ⅱ