POJ2431_Expedition_KEY
由题目可得,在一条路上有N个加油站,在距离终点a[i](细节)的位置上,你需要通过长度为L的路,油箱的容量是无限的,但是初始只有P点油,经过每个加油站时可以选择加b[i]的油,问最少加油几次可以到达终点。
可以看出经过每一个加油站时可以有两个选择:加油或不加油,但过去了就不能回来。
假如我们就要没油了,我们是不是这样想:我当时应该在XX加油站加油才对。
所以,我们假设我们可以时空穿梭,回到经过XX加油站的时候,立即加油。
开一个堆记录经过的、未加油的加油站。
在即将没油时从堆里拿出油多的加油站加油,直到又有油可以到达下一个加油站。
这里有一个细节,要再设置一个在终点的、油量为0的加油站。
code:
#include <cstdio>
#include <cctype>
#include <algorithm>
#include <queue>
using namespace std;
inline char getch(){
static char fl[],*A=fl,*B=fl;
return A==B&&(B=(A=fl)+fread(fl,,,stdin),A==B)?EOF:*A++;
}
inline int read(){
char c;
while(!isdigit(c=getch()));int x=c-'';
while(isdigit(c=getch()))x=x*+c-'';
return x;
}
int L,P,i,now,ans;
struct node{
int x,y;
}a[];
inline int cmp(node x,node y){return x.x<y.x;}
int main(){
int N;
while(~scanf("%d",&N)){
for(i=;i<=N;i++)a[i].x=read(),a[i].y=read();
L=read(),P=read();
for(i=;i<=N;i++)a[i].x=L-a[i].x;
a[++N].x=L;priority_queue<int>w;
sort(a+,a+N+,cmp);
for(i=;i<=N;i++){
int cost=a[i].x-now;
while(P<cost){
if(w.empty()){puts("-1");return ;}
P+=w.top(),w.pop(),ans++;
}
w.push(a[i].y);
now=a[i].x,P-=cost;
}
printf("%d\n",ans);
}
}
POJ2431_Expedition_KEY的更多相关文章
随机推荐
- SharpZipLib压缩解压
一.介绍 SharpZipLib是一个完全由C#编写的ZIP,GZIP,Tar和BZIP2 Library,可以方便的支持这几种格式的压缩和解压缩. https://github.com/icshar ...
- 通过JAVA从MQ读取消息的时候报错及解决
如果是通过JAVA将消息写入到MQ,再通过JAVA去读取消息,采用MQMessage读消息的方法readUTF()去读取的时候,就不会报错,可以正常读出来.如果采用在MQ资源管理器中插入测试消息或者是 ...
- Java连接MQ的实例, 测试类
package cjf.mq.mqclient; import com.ibm.mq.MQC; import com.ibm.mq.MQEnvironment; import com.ibm.mq.M ...
- SSH 与 SSL
关于 ssh 有人已经总结得非常好了,这里推荐大家看下 阮一峰 写的 ssh原理与应用 写得简单易懂,非常赞. 关于 ssl 这里有一篇博文写得也不错,ssl协议详解 好了,那 ssh 和 ssl ...
- CF#538(div 2) C. Trailing Loves (or L'oeufs?) 【经典数论 n!的素因子分解】
任意门:http://codeforces.com/contest/1114/problem/C C. Trailing Loves (or L'oeufs?) time limit per test ...
- spring mvc(4)处理模型数据
处理模型数据 Spring MVC 提供了以下几种途径输出模型数据: – ModelAndView: 处理方法返回值类型为 ModelAndView时, 方法体即可通过该对象添加 模型数据 – Map ...
- iOS之序列化与反序列化
所谓的序列化和反序列化就是将数据结构或对象和二进制串之间相互转换的过程: 本人的理解是当你于写数据需要本地存储时,即将你的数据写到硬盘上的时候,你就必须对他进行序列化,转换成二进制文件,从而便于在磁盘 ...
- 【题解】洛谷P1941 [NOIP2014TG] 飞扬的小鸟(背包DP)
次元传送门:洛谷P1941 思路 从题意可知 在每个单位时间内 可以无限地向上飞 但是只能向下掉一次 所以我们可以考虑运用背包解决这道题 上升时 用完全背包 下降时 用01背包 设f[x][y]为在坐 ...
- Ajax全局加载框(Loading效果)的配置
在Ajax进行后台数据请求的过程中,我们有时候会希望用户能知道页面后台还在做一些事情,这时候就需要给用户一个非常明确的提示,也就是我们所谓的进度条 废话完成~ 实现原理: Jquery可以对ajax进 ...
- 课时25.a标签基本使用(掌握)
什么是a标签? 我们打开百度或者淘宝网页,观察任何一个超链接都会发现它有如下特质: 有下划线 移上去有小手指 可以点击 a标签的作用:就是用于控制页面与页面之间跳转的 a标签的格式:<a hre ...