POJ 3164 Sunscreen (挑战程序设计竞赛的练习题)
题目:https://vjudge.net/problem/POJ-3614
思路参考这个:https://blog.csdn.net/qq_25576697/article/details/76577536
我有时间再补吧。
思路很清晰, 不过我最开始做的第一个思路是:对奶牛的maxSPF从大到小优先队列储存, 然后看lotion的SPF是否在奶牛的SPF区间内。
代码中的不用专门写个cmp对比吗?
还是sort就是直接对比P->first?
#include <cstdio>
#include <iostream>
#include <queue>
#include <algorithm>
using namespace std; const int MAX_N = +;
typedef pair<int, int> P;
priority_queue<int, vector<int>, greater<int> > q;
P cows[MAX_N], bottle[MAX_N];
int C, L; bool cmp (pair<int, int>a, pair<int, int>b)
{
return a.first<b.first;//根据fisrt的值升序排序 } int main()
{
cin>>C>>L;
for(int i=; i<=C; i++)
scanf("%d%d", &cows[i].first, &cows[i].second);
for(int i=; i<=L; i++)
scanf("%d%d", &bottle[i].first, &bottle[i].second);
sort(cows, cows+C+, cmp);
sort(bottle, bottle+L+, cmp);
// cout<<"&&"<<cows[1].first<<cows[2].first<<cows[3].first<<endl;
// cout<<"&"<<bottle[1].first<<bottle[2].first<<endl; int ans=, j=;
for(int i=; i<=L; i++)
{
while(j<=C && cows[j].first<=bottle[i].first)
{
q.push(cows[j].second);
j++;
}
int x;
while(!q.empty() && bottle[i].second)
{
x=q.top();//奶牛i的最大SPF
// cout<<"$"<<bottle[i].first<<endl;
// cout<<"#"<<x<<endl;
q.pop();
if(x<bottle[i].first) continue; bottle[i].second--;
// cout<<"*"<<bottle[i].second<<endl;
ans++;
}
}
cout<<ans<<endl;
return ;
}
这题打完代码后一直WA, 卡了我半个多小时。
第二天才发现是因为我对sort()不够理解。
参考题解是从下标0开始储存的, 然后sort(a,a+c);
而我是从下标1开始存的, 应该要sort(a, a+c+1);才对, 少加了个1.
POJ 3164 Sunscreen (挑战程序设计竞赛的练习题)的更多相关文章
- POJ 2386 Lake Counting 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=2386 <挑战程序设计竞赛>习题 题目描述Description Due to recent rains, water has ...
- 《挑战程序设计竞赛》2.3 动态规划-优化递推 POJ1742 3046 3181
POJ1742 http://poj.org/problem?id=1742 题意 有n种面额的硬币,面额个数分别为Ai.Ci,求最多能搭配出几种不超过m的金额? 思路 据说这是传说中的男人8题呢,对 ...
- Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题
King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...
- 挑战程序设计竞赛》P345 观看计划
<挑战程序设计竞赛>P345 观看计划 题意:一周一共有M个单位的时间.一共有N部动画在每周si时 ...
- poj 3253 Fence Repair 贪心 最小堆 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=3253 题解 本题是<挑战程序设计>一书的例题 根据树中描述 所有切割的代价 可以形成一颗二叉树 而最后的代价总和是与子节点和深 ...
- 【网络流#8】POJ 3469 Dual Core CPU 最小割【ISAP模板】 - 《挑战程序设计竞赛》例题
[题意]有n个程序,分别在两个内核中运行,程序i在内核A上运行代价为ai,在内核B上运行的代价为bi,现在有程序间数据交换,如果两个程序在同一核上运行,则不产生额外代价,在不同核上运行则产生Cij的额 ...
- <挑战程序设计竞赛> poj 3320 Jessica's Reading Problem 双指针
地址 http://poj.org/problem?id=3320 解答 使用双指针 在指针范围内是否达到要求 若不足要求则从右进行拓展 若满足要求则从左缩减区域 代码如下 正确性调整了几次 然后 ...
- Best Cow Line <挑战程序设计竞赛> 习题 poj 3617
P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Goldpoj 3617 http://poj.org/problem?id=3617 题目描述FJ is about ...
- poj 1852 ants 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=1852 题目描述 Description An army of ants walk on a horizontal pole of len ...
随机推荐
- 1192. [HNOI2006]鬼谷子的钱袋【进制】
Description 鬼谷子非常聪明,正因为这样,他非常繁忙,经常有各诸侯车的特派员前来向他咨询时政.有一天,他在咸阳游历的时候,朋友告诉他在咸阳最大的拍卖行(聚宝商行)将要举行一场拍卖会,其中有一 ...
- Day3 分支结构和循环结构
流程控制分类 顺序语句:从上到下按顺序依次执行 分支语句:根据条件不同,执行不同语句 循环语句:重复执行某些动作 单分支条件判断语句 条件语句 只是单独的判断条件是否成立 if选择结构是根据条件判断之 ...
- javascript 深入理解 继承(转)
通过对继承的深入理解,更了解javascript.本人还不太写会博客,转自汤姆大叔,链接http://www.cnblogs.com/TomXu/archive/2012/01/05/2305453. ...
- Xamarin 编写混合APP趟坑记录(二)
前言 公司要开发一个App,为了便于维护和更新,而不用每次去苹果审核,采用的是混合开发方式:用WebVie+WebApp的方式. 因为本人不会Java和ObjectC,公司又不想花钱招这两个岗位的人, ...
- Deepin15.8系统下安装QorIQ Linux SDK v2.0 yocto成功完美运行的随笔
2019.2.17日:最终安装成功,完美解决! 2019.2.16日:最终安装未成功,但是过程中排除 了几个bug,前进了几步,仅供参考. 写在最前面,yocto安装是有系统要求的,Deepin 15 ...
- SAP查找用户的登录记录
1.可以使用USR02中有个上次登陆日期和登陆时间. 2.用SE38跑下RSUSR200,输入用户名即可查询上次登陆日期 3.SU10可以查到
- 洛谷 P1350 车的放置
洛谷 P1350 车的放置 题目描述 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数. 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也 ...
- 4820: [Sdoi2017]硬币游戏
4820: [Sdoi2017]硬币游戏 链接 分析: 期望dp+高斯消元. 首先可以建出AC自动机,Xi表示经过节点i的期望次数,然后高斯消元,这样点的个数太多,复杂度太大.但是AC自动机上末尾节点 ...
- 2653: middle
2653: middle 链接 分析: 二分答案+主席树. 对于中位数的经典做法,就是二分一个数,将小于的变成-1,大于等于的变成+1,那么如果sum>=0(因为+1包括等于),L=mid+1, ...
- idea ssm项目出现日志中文乱码,封装的json中的msg字段中文乱码(但是json封装的bean中的字段不乱码)等其他各种项目下的中文乱码解决方案
开头划重点!(敲黑板):rebuild和mvn package的循环往复好几次的操作是解决这个问题的最主要的方法! 经过多次试验,发现这样做就可以正常显示中文了 我说为什么有时候乱码,有时候中文正常, ...