***POJ 3614 Sunscreen
来源:互联网 发布:高校教学软件租赁 编辑:程序博客网 时间:2024/06/04 22:00
原题链接
思路:队列。将防晒霜的SPF值从小到大排序。将spfmin符合条件的牛加入队列(若 spfmin < SPF,SPF增大后仍符合条件),该队列以spfmax的值从小到大排序(若spfmax >= SPF,则符合条件;若spfmax <= SPF,则SPF增加后更不可能符合条件,直接将该牛其移除队列)。
AC代码:
#include <iostream>#include <cstdio>#include <algorithm>#include <cstdlib>#include <cstring>#include <cmath>#include <vector>#include <queue>using namespace std;int c,l;pair<int,int> cow[2505],ss[2505];priority_queue<int,vector<int>,greater<int> > que;int main(){ int i,j; scanf("%d %d",&c,&l); for(i=0;i<c;i++){ scanf("%d %d",&cow[i].first,&cow[i].second); } for(i=0;i<l;i++){ scanf("%d %d",&ss[i].first,&ss[i].second); } sort(cow,cow+c); //默认升序 sort(ss,ss+l); j=0; //牛 int ans; //计数器 for(i=0;i<l;i++){ //针对每瓶防晒霜 int spf=ss[i].first; while(spf>=cow[j].first && j<c){ //找出符合最小值i防晒霜的牛(最小值符合i就一定符合i以后的所有防晒霜) que.push(cow[j].second); j++; } while(que.size() && ss[i].second){ //还有最小值符合i防晒霜条件的牛且i防晒霜有剩余 int max=que.top(); //优先队列,先取出最大值最小的牛 que.pop(); if(max>=spf){ //最大值也符合 ans++; ss[i].second--; } } } printf("%d\n",ans); return 0;}
1 0
- poj 3614 Sunscreen
- poj 3614 Sunscreen 贪心
- poj 3614 Sunscreen (贪心)
- POJ-3614-Sunscreen
- POJ 3614 Sunscreen
- poj-3614-Sunscreen
- poj 3614 Sunscreen 贪心
- POJ-3614 sunscreen
- POJ 3614 Sunscreen
- poj --3614 Sunscreen
- ***POJ 3614 Sunscreen
- POJ 3614 Sunscreen 优先队列
- POJ 3614 Sunscreen 优先队列
- POJ 3614 Sunscreen(贪心)
- POJ 3614 Sunscreen 优先队列
- poj 3614 Sunscreen(priority_queue && Greedy)
- POJ 3614 Sunscreen 优先队列
- Sunscreen POJ
- Map遍历的四种方式
- Github之Libary详情页你真的了解吗?
- 关于 Android中的插件化开发,dex分包,热修复(Tinker)的思考(二)
- 【机房重构】——七层登陆
- java Queue接口简介
- ***POJ 3614 Sunscreen
- com.google.code.findbugs引起的错误
- Linphone callState 电话状态的监听状态(二)
- nginx配置http2无效不起作用
- 安装完成服务器进行优化
- css-position:absolute时如何居中
- 理解Jquery的first-of-type选择器
- 2017LinuxPHP+Mysql+nginx最详尽配置学习手册包括优化
- windows网络模型