题目传送门

由题目可得,在一条路上有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的更多相关文章

随机推荐

  1. PHP验证信用卡卡号函数

    /** * 验证银行卡号是否是信用卡 * @param $cardnumber * @return bool */ function validateCard ($cardnumber) { $car ...

  2. 从源码看String,StringBuffer,StringBuilder的区别

    前言 看了一篇文章,大概是讲面试中的java基础的,有如题这么个面试题.我又翻了一些文章看了下,然后去看源码.看一下源码大概能更加了解一些. String String类是final的,表示不可被继承 ...

  3. Maven的一些基本命令

    mvn -v 查看maven版本 compile 编译 test 测试 package 打包 clean 删除target install 安装jar包到项目 使用 archetype 创建目录文件 ...

  4. Hibernate之CRUD实践

    Hibernate作为一个高度封装的持久层框架,曾经是非常牛逼的,现在虽然应用不是特别广,比如我前公司主要是做OA的,应用的框架就是Spring+SpringMVC+Hibernate. Hibern ...

  5. JZ2440学习笔记之IIS音频芯片WM8976

    音频芯片的接线图:IIS接到MPU的IIS controller上:看L3总线的接法,应该是使用GPIO来模拟时序. IIS总线用来传输音频数据. L3总线用来配置WM8976的内部寄存器. L3总线 ...

  6. centos7生成密钥及集群之间免密登录

    1.在本地生成密钥 命令:ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 2.进入.ssh文件夹,创建保存密钥的文件 命令:touch authorized_keys ...

  7. 十五、详述 IntelliJ IDEA 插件的安装及使用方法

    正文 首先,进入插件安装界面: Mac:IntelliJ IDEA -> Preferences -> Plugins; Windows:File -> Settings -> ...

  8. Android平台上PMEM的使用及Platform设备注册(二)

    三.注册PMEM设备 这里我们除了描述PMEM设备,还将注册一个拥有memory空间和IRQ资源的示例设备example_device. 对于example_device,定义如下结构体: stati ...

  9. 破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988)

    破损的键盘(悲剧文本)(Broken Keyboard(a.k.a. Beiju Text),Uva 11988) 题意描述 你在输入文章的时候,键盘上的Home键和End键出了问题,会不定时的按下. ...

  10. 『ACM C++』 Codeforces | 1066B - Heaters

    今日不写日感,直接扔上今日兴趣点: 新研究称火星曾经有一个巨大的地下水系统 链接:https://mbd.baidu.com/newspage/data/landingsuper?context=%7 ...