Heap:Sunscreen(POJ 3614)

题目大意:一堆牛,为了避免晒太阳会灼烧自己,然后他们自己有自己的防晒指数(一个区间),防晒霜可以提高防晒因数SPF,大了不行小了不行,现在有一桶防晒霜,他们提供一定的SPF,但是最多可以提供k头牛使用,问你这堆防晒霜最多可以给多少头牛提供保护?
大水题,我们用贪心就可以了,把防晒因数尽量给SPF_MIN大的用(还要比较SPF_MAX满足要求与否),就是建堆,然后不断贪心就可以了。
#include <iostream>
#include <functional>
#include <algorithm>
#include <queue> using namespace std; typedef struct cow_set_
{
int min_SPF;
int max_SPF;
}COWS;
typedef struct lotion_set_
{
int SPF;
int cover;
bool operator < (const lotion_set_ &x) const //自定义比较函数
{
return SPF < x.SPF;//最大值优先
}
}Lotion; int fcomp(const void *a, const void *b)
{
if ((*(COWS *)a).min_SPF == (*(COWS *)b).min_SPF)
{
return (*(COWS *)b).max_SPF - (*(COWS *)a).max_SPF;
}
else
return (*(COWS *)b).min_SPF - (*(COWS *)a).min_SPF;//由大到小排列
} static COWS cows_set[];
static bool used[];
priority_queue<lotion_set_>que_lotion; void Search(const int); int main(void)
{
int cow_sum, lotion_sum;
Lotion tmp; while (~scanf("%d%d", &cow_sum, &lotion_sum))
{
for (int i = ; i < cow_sum; i++)
scanf("%d%d", &cows_set[i].min_SPF, &cows_set[i].max_SPF);
for (int i = ; i < lotion_sum; i++)
{
scanf("%d%d", &tmp.SPF, &tmp.cover);
que_lotion.push(tmp);
}
qsort(cows_set, cow_sum, sizeof(COWS), fcomp);
Search(cow_sum);
}
return ;
} void Search(const int cow_sum)
{
int ans = , tmp_cover;
Lotion out;
memset(used, , sizeof(used)); while (!que_lotion.empty())
{
out = que_lotion.top(); que_lotion.pop();
tmp_cover = out.cover;
for (int j = ; j < cow_sum && tmp_cover != ; j++)
{
if (used[j]) continue;
if (cows_set[j].max_SPF < out.SPF
|| cows_set[j].min_SPF > out.SPF)
continue; used[j] = ; ans++; tmp_cover--;
}
}
printf("%d\n", ans);
}

还有这一次用了STL的堆,不知道为什么STL的堆总是比我自己手动写的要慢一点,可能是因为STL要先要一片区域的原因
Heap:Sunscreen(POJ 3614)的更多相关文章
- Sunscreen POJ - 3614(贪心)
To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide with s ...
- POJ 3614 Sunscreen 贪心
题目链接: http://poj.org/problem?id=3614 Sunscreen Time Limit: 1000MSMemory Limit: 65536K 问题描述 to avoid ...
- 【POJ 3614 Sunscreen】贪心 优先级队列
题目链接:http://poj.org/problem?id=3614 题意:C头牛去晒太阳,每头牛有自己所限定的spf安全范围[min, max]:有L瓶防晒液,每瓶有自己的spf值和容量(能供几头 ...
- poj -3614 Sunscreen(贪心 + 优先队列)
http://poj.org/problem?id=3614 有c头奶牛在沙滩上晒太阳,每头奶牛能忍受的阳光强度有一个最大值(max_spf) 和最小值(min_spf),奶牛有L种防晒霜,每种可以固 ...
- 【POJ 3614】 Sunscreen
[题目链接] http://poj.org/problem?id=3614 [算法] 将MinSPF从大到小排序,每头牛找SPF值最大的防晒霜 [代码] #include <algorithm& ...
- poj 3614 Sunscreen
...
- Sunscreen(POJ 3614 优先队列)
Sunscreen Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 5898 Accepted: 2068 Descrip ...
- POJ 3614 Sunscreen(贪心,区间单点匹配)
把牛的SPF看作一个区间,防晒霜看作点.一个点可以匹配C[i]次,问最大匹配数.可以用图论做. 也可以贪心.贪心的思想是,把区间和点排序以后,考虑最左边的点,加入和这个点相交的区间, 并排除出界的区间 ...
- 【POJ - 3614】Sunscreen (优先队列)
Sunscreen Descriptions C (1 ≤ C ≤ 2500) 头奶牛在海滩边晒太阳,要避免在日光浴时产生难看的灼伤,每头奶牛必须用防晒霜覆盖它的皮肤.第 i 头奶牛有一个最小和最大 ...
随机推荐
- 【前端学习】搬进Github
学习参考 萌码 一.Github简介和基本操作 Github 上操作基本上围绕一个个项目展开.项目就是一个文件夹,在github中成为“仓库”(repository),里面放着所有的项目文件,可以是代 ...
- myeclipse 引入jar包 (包括 jdbc 驱动引用)
A.直接用MyEclipse里自带的相关的项目jar包,右击项目"MyEclipse"菜单,选择对应的jar包就OK了 B.添加外部的jar包到web项目的lib包下,右击项目&q ...
- groovy-脚本和类
在groovy中定义类和java中是一样的.类的方法可以是static,也可以是非static的. groovy中的方法可以是public, protected, private,同时也支持java中 ...
- Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/lib/dyld_sim is not owned by root.
sudo chown -R root /Applications/Xcode6.1.1.app/ 这里把这个 /Applications/Xcode6.1.1.app/替换成你xocde据在的位置
- PHP 与网址相关内容
在PHP中,有时需要知道脚本所处的位置,这时会用到$_SERVER['SCRIPT_NAME'].$_SERVER['SCRIPT_FILENAME']及__FILE__.那么他们之间有什么不同呢? ...
- [Asp.Net]状态管理(Session、Application、Cache)
上篇博文介绍了在客户端状态管理的两种方式:http://www.cnblogs.com/wolf-sun/p/3329773.html.除了在客户端上保存状态外,还可以在服务器上保存状态.使用客户端的 ...
- win7 电脑能上网,但是下面的图标显示红叉的解决方法
win7 电脑能上网,但是下面的图标显示红叉的解决方法 任务管理器里面结束explorer.exe进程,然后,点击文件,新建任务,输入explorer回车看看
- 昂贵的聘礼(dijkstra)
昂贵的聘礼 Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 38549 Accepted: 11158 Descripti ...
- HDU 1025 Constructing Roads In JGShining's Kingdom(求最长上升子序列nlogn算法)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1025 解题报告:先把输入按照r从小到大的顺序排个序,然后就转化成了求p的最长上升子序列问题了,当然按p ...
- NGUI 学习笔记实战——制作商城UI界面
http://www.cnblogs.com/chongxin/p/3876575.html Unity3D的uGUI听说最近4.6即将推出,但是目前NGUI等UI插件大行其道并且已经非常成熟,所以我 ...