题目传送门

由题目可得,在一条路上有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. Entity Framework: 主从表的增删改

    1.根据主表添加从表数据 var dest = (from d in context.Destinations where d.Name == "Bali" select d).S ...

  2. CIKM 2013推荐系统论文总结

    这几天在家没事,介绍几篇CIKM上关于推荐系统的文章, Personalized Influence Maximization on Social Networks Social Recommenda ...

  3. React Native调试技巧与心得

    转自:http://blog.csdn.net/quanqinyang/article/details/52215652 在做React Native开发时,少不了的需要对React Native程序 ...

  4. vbox安装 ubuntu server 后 安装增强包

    用vbox安装虚拟机系统如果不装增强包, 有很多东西就有点不好用-用vbox安装ubuntu server时,点击菜单中的安装增强功能.因为ubuntu server版本没有ui,所以不能很方便滴找到 ...

  5. PhoneGap Geolocation 获取地理位置 api

    一. PhoneGap Geolocation 对象介绍 1.使应用程序可以访问地理位置信息.geolocation 对象提供了对设备 GPS 传感器的访问.Geolocation 提供设备的位置信息 ...

  6. mysqlslap执行基准测试

    查看mysqlslap所支持的主要参数配置及说明如下 -a, --auto-generate-sql 由系统自动生成SQL脚本进行测试 Generate SQL where not supplied ...

  7. MyBatis(7)高级查询

    本次全部学习内容:MyBatisLearning 高级查询:   对于整体的工程是时候增加一点文件了: 具体用到那个类再去说明类的内容   一对一查询: 1.resultType进行实现: 执行的sq ...

  8. 认识Jmeter操作界面

    使用工具:Jmeter(版本apache-jmeter-2.13) 安装前提:JDK的安装. 主要对GUI操作界面的讲解 (http://jmeter-plugins.org/downloads/al ...

  9. 金融新手投标模块布局小Demo

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. 去掉CodeIgniter URL中的index.php

    CI默认的rewrite url中是类似这样的,例如你的CI根目录是在/CodeIgniter/下,你的下面的二级url就类似这样http://localhost /CodeIgniter/index ...