• UESTC482-Charitable Exchange-bfs优先队列


     1 #include <cstring>
     2 #include <algorithm>
     3 #include <iostream>
     4 #include <queue>
     5 
     6 using namespace std;
     7 
     8 typedef long long LL;
     9 const int maxn = 1e5+10;
    10 int T,N,cnt;
    11 LL M;
    12 
    13 struct node{
    14     LL money,time;
    15     node(){}
    16     node(LL a,LL b){money=a;time=b;}
    17     bool operator < (const node &b) const
    18         {return time > b.time;}
    19 };
    20 
    21 struct item
    22 {
    23     LL V,R,time;
    24     item(){}
    25     item(LL a,LL b,LL c){V = a;R = b;time = c;}
    26     bool operator < (const item &b) const
    27         {return R < b.R;}
    28 }items[maxn];
    29 
    30 LL bfs()
    31 {
    32     priority_queue<node> pq;
    33     node st(1,0),cur;
    34     pq.push(st);
    35     int i,x=1;
    36     while(!pq.empty())
    37     {
    38         cur = pq.top();pq.pop();
    39         if(cur.money >= M) return cur.time;
    40         for(i=x;i<=cnt;i++)
    41         {
    42             if(cur.money < items[i].R) break;
    43             if(cur.money>=items[i].R&&cur.money<items[i].V)
    44             {
    45                 pq.push(node(items[i].V,cur.time+items[i].time));
    46             }
    47         }
    48         x = i;
    49     }
    50     return -1;
    51 }
    52 
    53 int main()
    54 {
    55     cin >> T;
    56     for(int cas=1;cas<=T;cas++)
    57     {
    58         cin >> N >> M;
    59         LL v,r,t;
    60         cnt=1;
    61         for(int i=0;i<N;i++)
    62         {
    63             cin >> v >> r >> t;
    64             if(v==r) continue;
    65             items[cnt++] = item(v,r,t);
    66         }
    67         sort(items+1,items+cnt+1);
    68         cout << "Case #"<<cas<<": "<<bfs()<<endl;
    69     }
    70 }
  • 相关阅读:
    vm12序列号
    三星手机官方固件下载
    MSTP故障处理手册
    分享一个高清壁纸网站
    ThinkPad X220 完美黑苹果 Hackintosh OS X 10.11 El Capitan
    一句命令激活windows/office
    Win10+VMplayer12中U盘无法挂载解决
    记一次金士顿DT100 G3 32G修复
    飘雪代码2枚
    禁用安全模式
  • 原文地址:https://www.cnblogs.com/helica/p/5205218.html
Copyright © 2020-2023  润新知