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 ... 
随机推荐
- BZOJ3160:万径人踪灭(FFT,Manacher)
			Solution $ans=$回文子序列$-$回文子串的数目. 后者可以用$manacher$直接求. 前者设$f[i]$表示以$i$为中心的对称的字母对数. 那么回文子序列的数量也就是$\sum_{ ... 
- 【bzoj4543】[POI2014]Hotel加强版
			题目 抄题解.jpg 发现原来的\(O(n^2)\)的换根\(dp\)好像行不通了呀 我们考虑非常牛逼的长链剖分 我们设\(f[x][j]\)表示在\(x\)的子树中距离\(x\)为\(j\)的点有多 ... 
- 微信小程序  动态加载class
			<view class=' {{topid==1?"top": "untop"}}' > 
- 超简单,centos7安装docker
			1.在centos7上直接yum安装docker [root@localhost ~]# yum install docker 2.启动docker [root@localhost ~]#servic ... 
- Java和Python安装和编译器使用
			java 一.安装jdk时第二次选择安装目录时,这是在安装jre,可以直接取消. 二.配置三个环境变量(在WIN7下) 右键我的电脑>属性>高级系统设置>环境变量>系统变量. ... 
- java学习笔记-JavaWeb篇二
			JavaWEB篇二 45 HttpSession概述46 HttpSession的生命周期 47 HttpSession常用方法示例48 HttpSessionURL重写 49 HttpSession ... 
- MySQL添加、删除索引
			1.索引类型 UNIQUE(唯一索引):不可以出现相同的值,可以有NULL值: INDEX(普通索引):允许出现相同的索引内容: PROMARY KEY(主键索引):不允许出现相同的值: fullte ... 
- nor flash启动与nand flash启动的区别
			1)接口区别:NOR FLASH地址线和数据线分开,来了地址和控制信号,数据就出来.NAND Flash地址线和数据线在一起,需要用程序来控制,才能出数据.通俗的说,就是光给地址不行,要先命令,再给地 ... 
- 关于DE2-115  FPGA开发板无法烧写程序的解决方法
			友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序.利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只 ... 
- Noip前的大抱佛脚----一些思路
			目录 一些思路 序列 函数问题 网格图 删除和询问 乘法问题 顺序问题 最值问题 研究成果 数论分块套数论分块的复杂度 一些思路 Tags:Noip前的大抱佛脚 序列 线段树(当然还要有主席树啊!) ... 
