POJ3614Sunscreen(优先队列+贪心)
来源:互联网 发布:如何加盟淘宝 编辑:程序博客网 时间:2024/06/07 02:51
Description
To avoid unsightly burns while tanning, each of the C (1 ≤ C ≤ 2500) cows must cover her hide with sunscreen when they're at the beach. Cow i has a minimum and maximum SPF rating (1 ≤ minSPFi ≤ 1,000; minSPFi ≤ maxSPFi ≤ 1,000) that will work. If the SPF rating is too low, the cow suffers sunburn; if the SPF rating is too high, the cow doesn't tan at all........
The cows have a picnic basket with L (1 ≤ L ≤ 2500) bottles of sunscreen lotion, each bottle i with an SPF rating SPFi (1 ≤ SPFi ≤ 1,000). Lotion bottle i can cover coveri cows with lotion. A cow may lotion from only one bottle.
What is the maximum number of cows that can protect themselves while tanning given the available lotions?
Input
* Line 1: Two space-separated integers: C and L
* Lines 2..C+1: Line i describes cow i's lotion requires with two integers: minSPFi and maxSPFi
* Lines C+2..C+L+1: Line i+C+1 describes a sunscreen lotion bottle i with space-separated integers: SPFi and coveri
Output
A single line with an integer that is the maximum number of cows that can be protected while tanning
Sample Input
3 23 102 51 56 24 1
Sample Output
2
Source
题目大意:一共有C个牛,每个牛有一个范围,在这个范围内,能够在阳光下晒,否则被烧烤,同时有L个防晒油,每个防晒油有不同的个数和防晒度,也就是说牛抹了防晒油就有防晒油所定的防晒度了,问一个有多少牛可以不被烧烤
解体思路:首先能够想到的是,为了尽可能的让更多的牛能够抹上防晒油,那么我就要尽可能用高于他们忍受范围下线尽可能接近的防晒油摸他们,所以,用优先队列排牛的忍受范围下限从低到高,排列防晒油从低到高,然后从选的那些牛里面找忍受范围上限以下的防晒油给他们
#include<iostream> #include<cstdio> #include<stdio.h> #include<cstring> #include<cstdio> #include<climits> #include<cmath> #include<vector> #include <bitset> #include<algorithm> #include <queue> #include<map> using namespace std;struct cow{int r;int l;}c[2505], cc;struct sunscreen{int sum, ans;}s[2505], ss;priority_queue<int, vector<int>, greater<int> > qua;int n, m, ans;bool cmp(cow x, cow y){return x.l < y.l;}bool cmp1(sunscreen x, sunscreen y){return x.ans < y.ans;}int main(){int i, j;cin >> n >> m;for (i = 1; i <= n; i++){cin >> c[i].l >> c[i].r;}for (i = 1; i <= m; i++){cin >> s[i].ans >> s[i].sum;}sort(c + 1, c + 1 + n,cmp);sort(s + 1, s + 1 + m,cmp1);ans = 0;j = 1;for (i = 1; i <= m; i++){while (j<=n&&c[j].l<=s[i].ans){qua.push(c[j].r);j++;}while(s[i].sum!=0&&!qua.empty()){int k = qua.top(); qua.pop();if (k >= s[i].ans){ans++;s[i].sum--;}}}cout << ans << endl;}
- POJ3614Sunscreen(优先队列+贪心)
- poj3614-贪心、优先队列
- EOJ1855 贪心+优先队列
- uvalive4254(贪心+优先队列)
- HOJ1062 贪心+优先队列
- poj3465 贪心+优先队列
- 贪心+优先队列
- 贪心+优先队列
- POJ2010 贪心优先队列
- 贪心+优先队列
- 优先队列贪心
- HDU6047优先队列+贪心
- POJ2431 优先队列+贪心
- 贪心加优先队列
- poj1042(贪心+优先队列)
- uva10954Add All(贪心+优先队列)
- hdu2850Load Balancing 贪心+优先队列
- poj3190Stall Reservations(贪心+优先队列)
- android中Intent简单使用
- linux vim编辑器的用法
- 机器学习与人类思考的类比
- 2017/04/14
- iOS
- POJ3614Sunscreen(优先队列+贪心)
- HTML5项目笔记8:使用HTML5 的跨域通信机制进行数据同步
- 通过AccessController看Java安全模型
- unity启动高级.net功能模块
- IDA Pro下载
- 程序员简历制作要点
- crunch生成密码字典,hydra破解FTP
- HTML5项目笔记7:使用HTML5 WebStorage API构建与.NET对应的会话机制
- HTML5项目笔记6:使用HTML5 FileSystem API设计离线文件存储