( ̄▽ ̄") 没钱了

TimeLimit: 1000ms  MenoryLimit:65536KB
64-bit integer IO format:%lld
Problem Description
在忙碌的假期中, BOBO学长在考完驾驶证后,决定开车去旅游,然而,他不想经常的停下车,来给小车加油,他想尽快到达旅游点,在行驶的途中想要尽量少次数的给小车加油。 
他行驶的道路是一条笔直的公路,在这条公路上,有 N (1 <= N <= 10,000) 个加油站,第i个加油站位于距离旅游点L[i]单位距离的地方,并且能够提供P[i]的汽油。 
现在,他距离他的旅游点为L单位距离,并且此时小车有着P(1 <= P <= 1,000,000)升单位的汽油。 
*假定他的小车比较高端,可以无限容纳汽油。 
*结果及其中间结果均在int范围内。 
*每向前行驶1单位距离消耗1单位汽油. 
输入的第i个加油站距离旅游点的位置不是有序的。 
滚来滚去……~(~o ̄▽ ̄)~o 。。。滚来滚去……o~(_△_o~) ~。。。
Input
第一行,输入N,表示有N个加油站。 
第2~N+1行,每行输入两个数值L[i]和P[i],分别表示每个加油站的距离旅游点位置L[i]单位距离和最多能加P[i]升的汽油。 
第N+2行输入L和P,分别表当前位置距离旅游点L单位距离和小车最开始时有P单位汽油。
Output
问小车从起点到终点最少要加几次油?若,在小车无法到达终点,则输出-1。

 
SampleInput
4
4 4
5 2
11 5
15 10
25 10
SampleOutput
2
题意:
   第一行,输入N,表示有N个加油站。
   第2~N+1行,每行输入两个数值L[i]和P[i],分别表示每个加油站的位置L[i]和最多能加P[i]升的汽油。
   第N+2行输入L和P,分别辆卡车要行驶L单位距离和卡车最开始时有P单位汽油。
   每向前行驶1单位距离消耗1单位汽油,起点,终点,以及加油站是在同一条直线上的,卡车的油箱无限大,无论加多少油都没问题。
        问小车从起点到终点最少要加几次油?若,在小车无法到达终点,则输出-1。
分析:
   起点和终点是一条直线,这条直线上有若干个加油站能够提供加油,最少需要加多少次油才能到达终点。
   要使得加油的次数最少的话,则是尽可能的让小车的没油的时候,才去加油站加汽油。
      对于小车来说,每次当经过第i个加油站的时候,能够选择加油或者不加,也就是在之后的路程中可以使用或者不使用这些汽油。
      所以,我们每次把经过的加油站时,所能够提供的每份汽油保存起来,在下次汽油不足的时候,才去取出来,每次先前保存下来的那份最多的汽油,再继续行驶,在判断。从而可以得出需要最少加油的次数。
  
代码:(优先队列+贪心)
 #include <iostream>
#include <stdio.h>
#include <queue>
#include <vector>
#include <algorithm>
using namespace std;
struct Node{int L,P;};
struct CMP_L{bool operator()(Node a,Node b){return a.L<b.L;}};
struct CMP_P{bool operator()(Node a,Node b){return a.P<b.P;}};
int main()
{
int N,i,j,L,P,Begin,Dic,Times;
Node NUM;
while(scanf("%d",&N)!=EOF)
{
priority_queue<Node,vector<Node>,CMP_L>ID_L;
priority_queue<Node,vector<Node>,CMP_P>ID_P;
for(i=;i<N;i++)
{
scanf("%d%d",&NUM.L,&NUM.P);
ID_L.push(NUM);
}
scanf("%d%d",&L,&P);
NUM.L=;NUM.P=;
ID_L.push(NUM); Begin=L;Times=;
while(!ID_L.empty())
{
NUM=ID_L.top();ID_L.pop();
Dic=Begin-NUM.L;
while(P-Dic<)
{
if(ID_P.empty())
{
Times=-;
break;
}
P+=ID_P.top().P;
ID_P.pop();
Times++;
}
if(Times==-)break;
P-=Dic;
Begin=NUM.L;
ID_P.push(NUM);
}
printf("%d\n",Times);
}
return ;
}

( ̄▽ ̄") 没钱了的更多相关文章

  1. ACM数论之旅7---欧拉函数的证明及代码实现(我会证明都是骗人的╮( ̄▽ ̄)╭)

    欧拉函数,用φ(n)表示 欧拉函数是求小于等于n的数中与n互质的数的数目 辣么,怎么求哩?~(-o ̄▽ ̄)-o 可以先在1到n-1中找到与n不互质的数,然后把他们减掉 比如φ(12) 把12质因数分解 ...

  2. ACM数论之旅6---数论倒数,又称逆元(我整个人都倒了( ̄﹏ ̄))

    数论倒数,又称逆元(因为我说习惯逆元了,下面我都说逆元) 数论中的倒数是有特别的意义滴 你以为a的倒数在数论中还是1/a吗 (・∀・)哼哼~天真 先来引入求余概念 (a +  b) % p = (a% ...

  3. Java表单中关于JavaScript的非空必输验证,你的程序和大牛有多少差距╮( ̄▽ ̄")╭

    var defaultEmptyOK = false; // スペース var whitespace = " \t\n\r "; function checkNull (theFi ...

  4. 换博客啦o(* ̄▽ ̄*)ブ啦啦啦啦啦

    csdn总挂···而且觉得这里比较好看啦啦啦啦啦 一键搬家真好用TUT不用贴原地址了呢

  5. 不高兴的o( ̄ヘ ̄o#)JJ

    题目描述 津津上初中了.妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班.另外每周妈妈还会送她去学习朗诵.舞蹈和钢琴.但是津津如果一天上课超过八个小时就会不高兴,而 ...

  6. sql查询条件为空的另类写法o( ̄▽ ̄)d

    简单描述:今天看老大提交的代码,发现了一个有意思的事情,一条sql中判断条件是空,老大的写法,让我眼前一亮.直接上代码 代码: <select id="getxxxs" re ...

  7. Vue.js连接后台数据jsp页面  ̄▽ ̄

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  8. ( ̄▽ ̄)" 关于河北ETC记账卡的默认密码

    去营业厅问了下,是6个1(111111),一般人我不告诉他 ...( _ _)ノ| 好吧,在技术博客里发这种东西合适吗? 还有就是,如果需要打印单位抬头发票的话,需要携带委托书盖单位公章(委托书可以去 ...

  9. ACM数论之旅3---最大公约数gcd和最小公倍数lcm(苦海无边,回头是岸( ̄∀ ̄))

    gcd(a, b),就是求a和b的最大公约数 lcm(a, b),就是求a和b的最小公倍数 然后有个公式 a*b = gcd * lcm     ( gcd就是gcd(a, b), ( •̀∀•́ ) ...

随机推荐

  1. 史上最详细SharePoint 2013安装步骤图解新手教程

    来源:// http://www.itexamprep.com/cn/microsoft/soft/sharepoint2013/2013/0408/2866.html 文章就是SharePoint2 ...

  2. UIDatePicker 时间滚动表

    UIDatePicker *datapicker; //时间滚动表 datapicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(50, 200 ...

  3. Java处理JPEG图片时,需要导入com.sun.image.codec.jpeg.JPEGImageEn,报错处理

    Java处理JPEG图片时,需要导入com.sun.image.codec.jpeg.JPEGImageEn,会报错,不能使用相应的方法. 原因:java访问限制级api的时候,默认的eclipse设 ...

  4. SQL语句优化技术分析 整理他人的

    一.操作符优化 1.IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格.但是用IN的SQL性能总是比较低的,从Oracle执行的步骤来分析用IN的SQL与不用 ...

  5. redis13---事务处理。

    Jedis事务我们使用JDBC连接Mysql的时候,每次执行sql语句之前,都需要开启事务:在MyBatis中,也需要使用openSession()来获取session事务对象,来进行sql执行.查询 ...

  6. jquery 学习笔记 (2)--write less,do more

    $(window).load(function(){      })           window.onload=function(){ } toggle()方法 toggle()方法的语法结构: ...

  7. java设计模式(二)

    抽象工厂模式 对工厂同一抽象,便于扩展 interface Provider{ public Sender Send(); } class MailFactory implements Provide ...

  8. 【转】spring管理属性配置文件properties——使用PropertiesFactoryBean|spring管理属性配置文件properties——使用PropertyPlaceholderConfigurer

     spring管理属性配置文件properties--使用PropertiesFactoryBean 对于属性配置,一般采用的是键值对的形式,如:key=value属性配置文件一般使用的是XXX.pr ...

  9. hbase 无法操作与hadoop的安全模式的原因

    最近使用hbase时,运行zookeeper的机子没有正常关闭zookeeper就关机了,导致开机后整个hbase集群无法使用,表现为master的localhost:60010 无法登录,使用hba ...

  10. Python操作IHTMLDocument2用于自动化测试

    有些软件的界面采用Win32窗口嵌套一个IE控件,用Spy++只能识别出一个Internet Explorer_Server控件.常用的几个API函数无法取到IE控件里面的内容,更无法对里面的控件进行 ...