晒太阳

  题目大意:一堆牛,为了避免晒太阳会灼烧自己,然后他们自己有自己的防晒指数(一个区间),防晒霜可以提高防晒因数SPF,大了不行小了不行,现在有一桶防晒霜,他们提供一定的SPF,但是最多可以提供k头牛使用,问你这堆防晒霜最多可以给多少头牛提供保护?

  大水题,我们用贪心就可以了,把防晒因数尽量给SPF_MIN大的用(还要比较SPF_MAX满足要求与否),就是建堆,然后不断贪心就可以了。

  

 1 #include <iostream>
 2 #include <functional>
 3 #include <algorithm>
 4 #include <queue>
 5
 6 using namespace std;
 7
 8 typedef struct cow_set_
 9 {
10     int min_SPF;
11     int max_SPF;
12 }COWS;
13 typedef struct lotion_set_
14 {
15     int SPF;
16     int cover;
17     bool operator < (const lotion_set_ &x) const //自定义比较函数
18     {
19         return SPF < x.SPF;//最大值优先
20     }
21 }Lotion;
22
23 int fcomp(const void *a, const void *b)
24 {
25     if ((*(COWS *)a).min_SPF == (*(COWS *)b).min_SPF)
26     {
27         return (*(COWS *)b).max_SPF - (*(COWS *)a).max_SPF;
28     }
29     else
30         return (*(COWS *)b).min_SPF - (*(COWS *)a).min_SPF;//由大到小排列
31 }
32
33 static COWS cows_set[2500];
34 static bool used[2500];
35 priority_queue<lotion_set_>que_lotion;
36
37 void Search(const int);
38
39 int main(void)
40 {
41     int cow_sum, lotion_sum;
42     Lotion tmp;
43
44     while (~scanf("%d%d", &cow_sum, &lotion_sum))
45     {
46         for (int i = 0; i < cow_sum; i++)
47             scanf("%d%d", &cows_set[i].min_SPF, &cows_set[i].max_SPF);
48         for (int i = 0; i < lotion_sum; i++)
49         {
50             scanf("%d%d", &tmp.SPF, &tmp.cover);
51             que_lotion.push(tmp);
52         }
53         qsort(cows_set, cow_sum, sizeof(COWS), fcomp);
54         Search(cow_sum);
55     }
56     return 0;
57 }
58
59 void Search(const int cow_sum)
60 {
61     int ans = 0, tmp_cover;
62     Lotion out;
63     memset(used, 0, sizeof(used));
64
65     while (!que_lotion.empty())
66     {
67         out = que_lotion.top(); que_lotion.pop();
68         tmp_cover = out.cover;
69         for (int j = 0; j < cow_sum && tmp_cover != 0; j++)
70         {
71             if (used[j]) continue;
72             if (cows_set[j].max_SPF < out.SPF
73                 || cows_set[j].min_SPF > out.SPF)
74                 continue;
75
76             used[j] = 1; ans++; tmp_cover--;
77         }
78     }
79     printf("%d\n", ans);
80 }

还有这一次用了STL的堆,不知道为什么STL的堆总是比我自己手动写的要慢一点,可能是因为STL要先要一片区域的原因

转载于:https://www.cnblogs.com/Philip-Tell-Truth/p/4912943.html

Heap:Sunscreen(POJ 3614)相关推荐

  1. 【贪心】Sunscreen(poj 3614/luogu 2887)

    Sunscreen poj 3614 luogu 2887 题目大意: 有n个人,每个人要求选一个价值在minniminn_iminni​到maxximaxx_imaxxi​的物品,现在有m件物品,每 ...

  2. 【POJ 3614 Sunscreen】贪心 优先级队列

    题目链接:http://poj.org/problem?id=3614 题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max]:有L瓶防晒液,每瓶有自己的spf值和容量(能供几头 ...

  3. poj 3614 Sunscreen(优先队列+贪心)

    Description To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her ...

  4. POJ 3614 Sunscreen

    Sunscreen Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12907   Accepted: 4534 Descri ...

  5. POJ - 3614 Sunscreen(贪心/二分图最大匹配-多重匹配/网络流-最大流)

    题目链接:点击查看 题目大意:给出n头奶牛,奶牛们现在要晒太阳,每头奶牛需要[l,r]区间内的光照强度,现在有m种防晒霜,每种防晒霜可以让奶牛接受到val数值的光照强度,然后每种防晒霜只有num个,现 ...

  6. poj 3614(最大流)

    Sunscreen Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6682   Accepted: 2350 Descrip ...

  7. 挑战程序设计竞赛(第二章习题总结)

    文章目录 搜索 Curling 2.0(POJ 3009) Meteor Shower(POJ 3669) Smallest Difference(POJ 2718) Hopscotch(POJ 30 ...

  8. 《挑战程序设计竞赛(第2版)》习题册攻略

    本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...

  9. Kattis - icpccamp ICPC Camp(二分+贪心)

    题目链接:点击查看 题目大意:给出两种种类的数字分别 m1m_1m1​ 和 m2m_2m2​ 个,现在要求匹配 nnn 个不同种类的数字,每个数字只能使用一次,且两数之和不能超过 sss,输出任意两对 ...

  10. $2019$ 暑期刷题记录 $2$(基本算法专题)

    $ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...

最新文章

  1. 经典论文复现 | LSGAN:最小二乘生成对抗网络
  2. iOS之深入解析WKWebView的WebKit源码调试与分析
  3. Unity3D 中的程序后台运行
  4. [转贴]制作windows 2003自动安装盘-集成补丁/Raid及硬件驱动
  5. 软件评测师教程笔记(更新中)
  6. Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试
  7. 【渝粤教育】国家开放大学2018年秋季 0653-21T机电控制与可编程控制技术 参考试题
  8. c++ map初始化同时赋值_Golang入门教程——map篇
  9. Selenium:利用select模块处理下拉框
  10. 不想打造物联网的制造型企业不是一家合格的百年老店
  11. STM32MP157(实验九)——SysTick定时器us延时
  12. 快递 code与快递名称
  13. 一个班37人考进清华北大,老师发来一则短信,家长都沉默了!
  14. java 新功能_最新的Java版本101有什么新功能?
  15. C# 操作Word书签(一)插入、删除书签
  16. 十年一觉电影梦:李安传
  17. win10网络邻居看到linux,win10网络邻居找不到其他电脑怎么办
  18. 小程序图片懒加载放在服务器,【小程序】使用uni-app搭建小程序环境---图片懒加载...
  19. 来把狠的——传一个肖邦的《Black Key Exercise(黑键练习曲)》
  20. 关于python 中h5py库安装不上的解决办法

热门文章

  1. ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
  2. 对分类型变量,进行编码处理——pd.get_dummies()、LabelEncoder()、oneHotEncoder()
  3. 【转】OUTLOOK签名档中加入写信日期
  4. java框架之SpringBoot(16)-分布式及整合Dubbo
  5. 深入理解 Python 异步编程(上)
  6. (转)测试端口通不通(四种方法)
  7. .Net 面试题 汇总(二)
  8. 2016 网易校招内推C/C++第二场8.6
  9. OEM信息自定义工具v2.0
  10. 国产达梦数据库管理系统-通过Excel文件导入数据