题目: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 (挑战程序设计竞赛的练习题)的更多相关文章

  1. POJ 2386 Lake Counting 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=2386 <挑战程序设计竞赛>习题 题目描述Description Due to recent rains, water has ...

  2. 《挑战程序设计竞赛》2.3 动态规划-优化递推 POJ1742 3046 3181

    POJ1742 http://poj.org/problem?id=1742 题意 有n种面额的硬币,面额个数分别为Ai.Ci,求最多能搭配出几种不超过m的金额? 思路 据说这是传说中的男人8题呢,对 ...

  3. Aizu 2249Road Construction 单源最短路变形《挑战程序设计竞赛》模板题

    King Mercer is the king of ACM kingdom. There are one capital and some cities in his kingdom. Amazin ...

  4. 挑战程序设计竞赛》P345 观看计划

                                                 <挑战程序设计竞赛>P345 观看计划 题意:一周一共有M个单位的时间.一共有N部动画在每周si时 ...

  5. poj 3253 Fence Repair 贪心 最小堆 题解《挑战程序设计竞赛》

    地址 http://poj.org/problem?id=3253 题解 本题是<挑战程序设计>一书的例题 根据树中描述 所有切割的代价 可以形成一颗二叉树 而最后的代价总和是与子节点和深 ...

  6. 【网络流#8】POJ 3469 Dual Core CPU 最小割【ISAP模板】 - 《挑战程序设计竞赛》例题

    [题意]有n个程序,分别在两个内核中运行,程序i在内核A上运行代价为ai,在内核B上运行的代价为bi,现在有程序间数据交换,如果两个程序在同一核上运行,则不产生额外代价,在不同核上运行则产生Cij的额 ...

  7. <挑战程序设计竞赛> poj 3320 Jessica's Reading Problem 双指针

    地址 http://poj.org/problem?id=3320 解答 使用双指针 在指针范围内是否达到要求 若不足要求则从右进行拓展  若满足要求则从左缩减区域 代码如下  正确性调整了几次 然后 ...

  8. Best Cow Line <挑战程序设计竞赛> 习题 poj 3617

    P2870 [USACO07DEC]最佳牛线,黄金Best Cow Line, Goldpoj 3617 http://poj.org/problem?id=3617 题目描述FJ is about ...

  9. poj 1852 ants 题解《挑战程序设计竞赛》

    地址  http://poj.org/problem?id=1852 题目描述 Description An army of ants walk on a horizontal pole of len ...

随机推荐

  1. 2018 - 2019 CTU Open Contest E. Locker Room 【后缀数组】

    任意门:http://codeforces.com/gym/101954/problem/E E. Locker Room time limit per test 2.0 s memory limit ...

  2. ethers.js-4-Contracts

    Contracts A Contract is an abstraction of an executable program on the Ethereum Blockchain. A Contra ...

  3. Python的多线程和多进程

    (1)多线程的产生并不是因为发明了多核CPU甚至现在有多个CPU+多核的硬件,也不是因为多线程CPU运行效率比单线程高.单从CPU的运行效率上考虑,单任务进程及单线程效率是最高的,因为CPU没有任何进 ...

  4. Plugin with id 'com.novoda.bintray-release' not found的解决方法

    我们一般在在github上下载下来的代码,有时候会提示Plugin with id ‘com.novoda.bintray-release’ not found的错误,这个怎么解决呢,其实很简单,只要 ...

  5. java集合---迭代器iterator

    一:ArraryList  最终继承超级接口Collection,Colection接口继承Iterator接口. public interface Collection<E> exten ...

  6. jenkins slave 挂载

    http://blog.sina.com.cn/s/blog_13cc013b50102wiau.html

  7. Spring AOP源码分析(三)创建AOP代理

    摘要: 本文结合<Spring源码深度解析>来分析Spring 5.0.6版本的源代码.若有描述错误之处,欢迎指正. 目录 一.获取增强器 1. 普通增强器的获取 2. 增加同步实例化增强 ...

  8. UNIX网络编程 卷2 源代码使用

    1. 下载源码,W. Richard Stevens的主页:http://www.kohala.com/start/ wget http://www.kohala.com/start/unpv22e/ ...

  9. Oracle 12.2 报错:ORA-12012: error on auto execute of job "SYS"."ORA$AT_OS_OPT_SY_7458"

    alert报错 2019-01-12T10:10:11.499130+08:00Errors in file /u01/app/oracle/diag/rdbms/rac1/rac112/trace/ ...

  10. OC 知识:彻底理解 iOS 内存管理(MRC、ARC)

    1. 什么是内存管理 程序在运行的过程中通常通过以下行为,来增加程序的的内存占用 创建一个OC对象 定义一个变量 调用一个函数或者方法 而一个移动设备的内存是有限的,每个软件所能占用的内存也是有限的 ...