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(二分+贪心)相关推荐

  1. 洛谷P1182 数列分段 Section II(二分+贪心)

    题目描述 对于给定的一个长度为N的正整数数列 A1∼NA _{1∼N}A1∼N​,现要将其分成 M(M≤N)M(M≤N)M(M≤N)段,并要求每段连续,且每段和的最大值最小. 关于最大值最小: 例如一 ...

  2. 蒟蒻的第一篇博客CF1041C Coffee Break(二分+贪心+set)

    CF1041C Coffee Break(二分+贪心+set) 描述 Recently Monocarp got a job. His working day lasts exactly mm min ...

  3. HDOJ 2037 今年暑假不AC 【贪心】

    HDOJ 2037 今年暑假不AC [贪心] 题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2037 给出n个电视节目的开始时间和结束时间, 要求合理安 ...

  4. leetcode:1488. 避免洪水泛滥【二分 + 贪心】

    分析 先把可以抽干的位置记录下来,用sortedlist的q,方便删除 然后用dict记录某个湖之前是否出现过 如果出现过肯定有pre和now的位置 然后根据pre和now找到q中对应的idx,直接改 ...

  5. “师创杯”山东理工大学第九届ACM程序设计竞赛 热身赛 E.上色的纱雾【二分+贪心】

    上色的纱雾 Time Limit: 1000MS  Memory Limit: 65536KB Submit  Statistic Problem Description 纱雾画画功力首屈一指,现在她 ...

  6. Hamburgers(二分+贪心)(又名: 比奇堡的汉堡节)

    题目连接: 比奇堡的汉堡节 题目: 比奇堡一年一度的汉堡节到了,身为比奇堡皇家指定汉堡王牌店铺"蟹堡王"的独一无二(emm,好像只有一个=.=)的厨师海绵宝宝超超超超-级开心,因为 ...

  7. [USACO16JAN]Angry Cows S[二分+贪心]

    题意:Bessie 设计了一款新游戏:Angry Cows.在这个游戏中,玩家发射奶牛,每头奶牛落地时引爆一定范围内的干草.游戏的目标是使用一组奶牛引爆所有干草. N 捆干草排列在数轴上的不同位置.第 ...

  8. HDU 2037 今年暑假不AC【贪心】

    今年暑假不AC Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...

  9. BZOJ2525 [Poi2011]Dynamite 【二分 + 贪心】

    题目链接 BZOJ2525 题解 就是要求所有有炸弹的点到点燃点距离最大值最小 显然二分答案距离\(D\) 然后按深度排序,贪心点燃当前没覆盖的深度最深的点往上第\(D\)层的点 每覆盖一个点要标记其 ...

最新文章

  1. java表或视图不存在_Error querying database. Cause: java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在...
  2. zendopcache代替APC效果不错
  3. js数据类型判断和数组判断
  4. 4G+宽带高歌猛进:移动双线虐杀联通
  5. 如何在Marketing Cloud里创建extension field扩展字
  6. python datetime datetime
  7. php in_array()函数
  8. inline-block的几个问题(还没解决)
  9. 基于springboot的药品商城系统
  10. 实现有管理功能的ASP留言板
  11. Excel如何实现聚光灯效果
  12. c语言行列坐标是先行后j,C语言课后习题参考答案
  13. 四叉树算法原理与实现
  14. 【Ydui.js】------ ydui.js 中的 util 中的方法讲解如何调用使用 例如:获取地址栏信息,js 倒计时,cookie, 获取图片地址等
  15. laravel的elixir和gulp用来对前端施工
  16. kmeans-用户分层
  17. 【OpenCV】-重映射
  18. #6.3四维理论的数学模式
  19. 一版张小龙没见过的微信『高仿Flutter版微信』
  20. 怎么靠网络的正常渠道赚钱?

热门文章

  1. oracle 指定格式化,Oracle中的格式化函数
  2. 读取nas_NAS怎么玩?除了存放小姐姐,它竟然还有这些功能
  3. 后台系统可扩展性学习笔记(十一)Database Denormalization
  4. 霍夫码编码(一种不等长,非前缀编码方式)
  5. 2016年湖南省第十二届大学生计算机程序设计竞赛
  6. HDU 1402——A * B Problem Plus
  7. linux 用户管理以及其他命令
  8. 怎样检测mysql5.5安装成功_64位wiN7系统中装配MySQL5.5.17(测试安装成功哦!)
  9. 【剑指offer】_12 数组中的逆序对
  10. 每日一题:leetcode81.搜索旋转排序数组Ⅱ