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 ...
随机推荐
- BZOJ3270:博物馆(高斯消元)
Description 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆.这座博物馆有着特别的样式.它包含由m条走廊连接的n间房间,并且满足可以从任何一 ...
- 【转】 android中的文件操作详解以及内部存储和外部存储
摘要 其实安卓文件的操作和Java在pc环境下的操作并无二致,之所以需要单独讲解是因为安卓系统提供了不同于pc的访问文件系统根路径的api,同时对一个应用的私有文件做了统一的管理.根据我的经验,初学者 ...
- ES6新特性1:let和const
本文摘自ECMAScript6入门,转载请注明出处. 一.let 1. ES6增了let命令,用来声明变量.它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效. { let a ...
- Zookeeper入门(四)之Leader选举
让我们分析如何在ZooKeeper集合中选举leader节点.考虑一个集群中有N个节点.leader选举的过程如下: 所有节点创建具有相同路径 /app/leader_election/guid_ 的 ...
- springboot activiti 整合项目框架源码 shiro 安全框架 druid windows10风格
官网:www.fhadmin.org 此项目为Springboot工作流版本 windows 风格,浏览器访问操作使用,非桌面应用程序. 1.代码生成器: [正反双向](单表.主表.明细表.树形表 ...
- 小白第一次使用Git随笔
想研究Git很久了,一直没有找到很好的博客或论坛,近几天工作项目任务没有那么重,就想着找几篇文章把这玩意儿给解决掉,本博客是记录读廖雪峰老师所写的<Git教程>的随笔,以便巩固学习,若想学 ...
- jQuery 基础与运用
1. jquery引入以及入口函数 引入方式 <!--方式一:下载到本地,引入路径--> <script src="jquery-3.1.1.min.js"&g ...
- scala字段权限问题
1.对象私有字段 1)private class Counter(num: Int) { private var value = 0 def increment() = { value += 1 } ...
- SAP RANG语法
Range 和select-option 的变量是差不多的 sign = 'I' 或 sign = 'E' 是指INCLUED 和 EXCLUDE OPTION = 'EQ' 或其他操作符.. LO ...
- 简单的firebird插入速度测试
Firebird3.0 插入1万条Guid,不带事务:5500ms 插入1万条Guid,带事务:2300ms mssql2008 插入1万条Guid,不带事务:1400ms 插入1万条Guid,带事务 ...