zoukankan      html  css  js  c++  java
  • 5月5日

    poj2431

    题意:卡车开车到距离L个单位的地方,每开一个单位用1的油,路上共有n个加油站,距离终点a[i]的地方加油站可以加b[i]的油,问最少加多少次油可以到达终点

    分析:我们可以这样考虑,在到达加油站i时,就获得了一次在之后任何时候都可以加bi的权力,而在之后需要加油时,就认为是在之前经过的加油站加的油就可以了。这样我们在用一个优先队列进行维护即可,注意给出的数据是距离终点的距离

     1 #include <iostream>
     2 #include <cstdio>
     3 #include <cstring>
     4 #include <string>
     5 #include <vector>
     6 #include <algorithm>
     7 #include <set>
     8 #include <map>
     9 #include <bitset>
    10 #include <cmath>
    11 #include <queue>
    12 #include <stack>
    13 using namespace std;
    14 const int maxn=1e5+5;
    15 typedef pair<int,int> point;
    16 point s[maxn];
    17 int l,p,n;
    18 bool cmp(point x,point y)
    19 {
    20     return x.first<y.first;
    21 }
    22 int main()
    23 {
    24     int n;
    25     while(cin>>n)
    26     {
    27         for(int i=0;i<n;i++){
    28             scanf("%d%d",&s[i].first,&s[i].second);
    29         }
    30         cin>>l>>p;
    31         for(int i=0;i<n;i++){
    32             int t=l-s[i].first;
    33             s[i].first=t;
    34         }
    35         s[n].first=l,s[n].second=0;
    36         sort(s,s+n,cmp);
    37         int i=0,cnt=0;
    38         priority_queue<int> que;
    39         while(!que.empty())  que.pop();
    40         while(i<=n){
    41             while(p<s[i].first&&!que.empty()){
    42                 p+=que.top();
    43                 que.pop();
    44                 cnt++;
    45             }
    46             if(p<s[i].first) break;
    47             while(s[i].first<=p&&i<=n){
    48                 que.push(s[i].second);
    49                 i++;
    50             }
    51         }
    52 //        cout<<p<<endl;
    53         if(p>=l)  cout<<cnt<<endl;
    54         else  cout<<"-1"<<endl;
    55     }
    56     return 0;
    57 }
    View Code
  • 相关阅读:
    2.9数据-paddlepaddle数据集wmt16
    2.8数据-paddlepaddle数据集uci_housing
    2.6数据-paddlepaddle数据集movielens
    2.5数据-paddlepaddle数据集imikolov
    2.4数据-paddlepaddle数据集imdb
    2.3数据-paddlepaddle数据集Conll05
    在android程序中怎么执行ifconfig命令来修改android 的ip地址,
    VMware 11安装Mac OS X 10.10 及安装Mac Vmware Tools.
    xcode7 如何真机测试
    海子
  • 原文地址:https://www.cnblogs.com/wolf940509/p/5462635.html
Copyright © 2011-2022 走看看