UESTC482-Charitable Exchange-bfs优先队列
2024-08-26 21:41:40
#include <cstring>
#include <algorithm>
#include <iostream>
#include <queue> using namespace std; typedef long long LL;
const int maxn = 1e5+;
int T,N,cnt;
LL M; struct node{
LL money,time;
node(){}
node(LL a,LL b){money=a;time=b;}
bool operator < (const node &b) const
{return time > b.time;}
}; struct item
{
LL V,R,time;
item(){}
item(LL a,LL b,LL c){V = a;R = b;time = c;}
bool operator < (const item &b) const
{return R < b.R;}
}items[maxn]; LL bfs()
{
priority_queue<node> pq;
node st(,),cur;
pq.push(st);
int i,x=;
while(!pq.empty())
{
cur = pq.top();pq.pop();
if(cur.money >= M) return cur.time;
for(i=x;i<=cnt;i++)
{
if(cur.money < items[i].R) break;
if(cur.money>=items[i].R&&cur.money<items[i].V)
{
pq.push(node(items[i].V,cur.time+items[i].time));
}
}
x = i;
}
return -;
} int main()
{
cin >> T;
for(int cas=;cas<=T;cas++)
{
cin >> N >> M;
LL v,r,t;
cnt=;
for(int i=;i<N;i++)
{
cin >> v >> r >> t;
if(v==r) continue;
items[cnt++] = item(v,r,t);
}
sort(items+,items+cnt+);
cout << "Case #"<<cas<<": "<<bfs()<<endl;
}
}
最新文章
- Autodesk View and Data API二次开发学习指南
- MongoDB学习笔记—Linux下搭建MongoDB环境
- Cannot send session cache limiter Cannot modify header information
- XE8 (RTM) Android SDK 更新安装(转)
- MySQL客户端工具 SQLyog
- Django admin 显示图片
- MAC地址,使用java获取IP地址和MAC地址。
- Java笔记1-Java相关概念和如何实现跨平台
- iBeacon知识1
- BackgroundWorker组件学习
- SqlServer中输出错误消息
- mysql 存储过程项目小结
- Android开发手记(10) 下拉菜单Spinner
- Technology_Roadmap
- Node.js API
- file_get_contents无法请求https连接的解决方法
- Java 常量池存放的是什么
- 关于乱序(shuffle)与随机采样(sample)的一点探究
- 意外的php之学习笔记
- Android Tools 开发工具库开源项目总结