zoukankan      html  css  js  c++  java
  • POJ_2431 Expedition 【数据结构】

    一、题面

    POJ2431

    二、分析

    主要说几个坑

    1.给出的点需要根据下标排序。

    2.根据不同的方式要把起始点或者终点加进去。我没有转换距离,而是直接从起始点到终点根据距离不断相减判断的,那么起点就是25,所以要把终点0加进去。如果转换距离的话,终点就是相对于出发点25。这个根据个人选择。

    三、AC代码

     1 #include <cstdio>
     2 #include <iostream>
     3 #include <queue>
     4 #include <algorithm>
     5 using namespace std;
     6 
     7 struct Node
     8 {
     9     int l, p;
    10     bool operator<(const Node t)const
    11     {
    12         return l > t.l;
    13     }
    14 }Data[10003];
    15 int N, L, P;
    16 
    17 void solve()
    18 {
    19     int ans = 0, next = L-P;
    20     priority_queue<int> pq;
    21     
    22     for(int i = 0; i < N; i++)
    23     {
    24         while(Data[i].l < next)
    25         {
    26             if(pq.empty())
    27             {
    28                 printf("-1
    ");
    29                 return;
    30             }
    31             next = next - pq.top();
    32             pq.pop();
    33             ans++;
    34         }
    35         pq.push(Data[i].p);
    36     }
    37     printf("%d
    ", ans);
    38 }
    39 int main()
    40 {
    41     // freopen("input.txt", "r", stdin);
    42     // freopen("out.txt", "w", stdout);
    43     while(scanf("%d", &N)!=EOF)
    44     {
    45         for(int i = 0; i < N; i++)
    46         {
    47             scanf("%d %d", &Data[i].l, &Data[i].p);
    48         }
    49         scanf("%d %d", &L, &P);
    50         Data[N].l = 0, Data[N].p = 0;
    51         N++;
    52         sort(Data, Data+N);
    53         solve();
    54     }
    55     return 0;
    56 }
    View Code
  • 相关阅读:
    Win10创意者更新秋季版激活秘籍
    将刷了Android的Lumia恢复为WP系统
    给Lumia 520/521/525/526/720刷Android系统
    DNS解析
    遍历对象目录
    PE注入
    利用NtCreateThreadEx注入
    利用CreateRemoteThread注入
    APC注入
    SetWindowHookEx()注入
  • 原文地址:https://www.cnblogs.com/dybala21/p/10130849.html
Copyright © 2011-2022 走看看