Heap:Sunscreen(POJ 3614)
晒太阳
题目大意:一堆牛,为了避免晒太阳会灼烧自己,然后他们自己有自己的防晒指数(一个区间),防晒霜可以提高防晒因数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)相关推荐
- 【贪心】Sunscreen(poj 3614/luogu 2887)
Sunscreen poj 3614 luogu 2887 题目大意: 有n个人,每个人要求选一个价值在minniminn_iminni到maxximaxx_imaxxi的物品,现在有m件物品,每 ...
- 【POJ 3614 Sunscreen】贪心 优先级队列
题目链接:http://poj.org/problem?id=3614 题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max]:有L瓶防晒液,每瓶有自己的spf值和容量(能供几头 ...
- poj 3614 Sunscreen(优先队列+贪心)
Description To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her ...
- POJ 3614 Sunscreen
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12907 Accepted: 4534 Descri ...
- POJ - 3614 Sunscreen(贪心/二分图最大匹配-多重匹配/网络流-最大流)
题目链接:点击查看 题目大意:给出n头奶牛,奶牛们现在要晒太阳,每头奶牛需要[l,r]区间内的光照强度,现在有m种防晒霜,每种防晒霜可以让奶牛接受到val数值的光照强度,然后每种防晒霜只有num个,现 ...
- poj 3614(最大流)
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6682 Accepted: 2350 Descrip ...
- 挑战程序设计竞赛(第二章习题总结)
文章目录 搜索 Curling 2.0(POJ 3009) Meteor Shower(POJ 3669) Smallest Difference(POJ 2718) Hopscotch(POJ 30 ...
- 《挑战程序设计竞赛(第2版)》习题册攻略
本项目来源于GitHub 链接: 项目GitHub链接 1 前言 项目为<挑战程序设计竞赛(第2版)>习题册攻略,已完结.可配合书籍或笔记,系统学习算法. 题量:约200道,代码注释内含详 ...
- Kattis - icpccamp ICPC Camp(二分+贪心)
题目链接:点击查看 题目大意:给出两种种类的数字分别 m1m_1m1 和 m2m_2m2 个,现在要求匹配 nnn 个不同种类的数字,每个数字只能使用一次,且两数之和不能超过 sss,输出任意两对 ...
- $2019$ 暑期刷题记录 $2$(基本算法专题)
$ 2019 $ 暑期刷题记录 $ 2 $ (基本算法专题) $ by~~wch $ $ BZOJ~1958~Strange~Towers~of~Hanoi $ (动态规划,递推) 题目大意: 求有 ...
最新文章
- 经典论文复现 | LSGAN:最小二乘生成对抗网络
- iOS之深入解析WKWebView的WebKit源码调试与分析
- Unity3D 中的程序后台运行
- [转贴]制作windows 2003自动安装盘-集成补丁/Raid及硬件驱动
- 软件评测师教程笔记(更新中)
- Android之解决ubuntu没有无线网卡和手机wifi实现adb wifi调试
- 【渝粤教育】国家开放大学2018年秋季 0653-21T机电控制与可编程控制技术 参考试题
- c++ map初始化同时赋值_Golang入门教程——map篇
- Selenium:利用select模块处理下拉框
- 不想打造物联网的制造型企业不是一家合格的百年老店
- STM32MP157(实验九)——SysTick定时器us延时
- 快递 code与快递名称
- 一个班37人考进清华北大,老师发来一则短信,家长都沉默了!
- java 新功能_最新的Java版本101有什么新功能?
- C# 操作Word书签(一)插入、删除书签
- 十年一觉电影梦:李安传
- win10网络邻居看到linux,win10网络邻居找不到其他电脑怎么办
- 小程序图片懒加载放在服务器,【小程序】使用uni-app搭建小程序环境---图片懒加载...
- 来把狠的——传一个肖邦的《Black Key Exercise(黑键练习曲)》
- 关于python 中h5py库安装不上的解决办法
热门文章
- ubuntu16.04下ROS操作系统学习笔记(四 )机器人系组成、URDF机器人建模、xacro模型优化
- 对分类型变量,进行编码处理——pd.get_dummies()、LabelEncoder()、oneHotEncoder()
- 【转】OUTLOOK签名档中加入写信日期
- java框架之SpringBoot(16)-分布式及整合Dubbo
- 深入理解 Python 异步编程(上)
- (转)测试端口通不通(四种方法)
- .Net 面试题 汇总(二)
- 2016 网易校招内推C/C++第二场8.6
- OEM信息自定义工具v2.0
- 国产达梦数据库管理系统-通过Excel文件导入数据