POJ 2431 Expedition (贪心 + 优先队列)
#include<iostream>
#include<queue>
#include<algorithm>
using namespace std;
struct node{
int dis;
int gas;
}a[]; bool cmp(node a,node b){
return a.dis<b.dis;
}
int main(){
int n;
while(cin>>n){
for(int i=;i<=n;i++){
cin>>a[i].dis>>a[i].gas;
}
int l,p;
cin>>l>>p;
//终点
a[n+].dis=l;
a[n+].gas=;
//将加油站到终点距离变为离起点距离并从小到大排好
for(int i=;i<=n;i++){
a[i].dis=l-a[i].dis;
}
sort(a+,a+n+,cmp);
//优先队列,从大到小
priority_queue<int>q;
//ans:加油次数,pos:当前位置,tank:剩余油量
int ans=,pos=,tank=p;
for(int i=;i<=n+;i++){
//当前位置离下一个加油站的距离
int x=a[i].dis-pos;
while(tank<x){
if(q.empty()){
cout<<"-1"<<endl;
return ;
}
tank+=q.top();
q.pop();
ans++;
}
tank-=x;
pos=a[i].dis;
q.push(a[i].gas);
}
cout<<ans<<endl;
}
return ;
}
POJ 2431 Expedition (贪心 + 优先队列)的更多相关文章
- POJ 2431 Expedition (贪心+优先队列)
题目地址:POJ 2431 将路过的加油站的加油量放到一个优先队列里,每次当油量不够时,就一直加队列里油量最大的直到能够到达下一站为止. 代码例如以下: #include <iostream&g ...
- poj 2431 Expedition 贪心 优先队列 题解《挑战程序设计竞赛》
地址 http://poj.org/problem?id=2431 题解 朴素想法就是dfs 经过该点的时候决定是否加油 中间加了一点剪枝 如果加油次数已经比已知最少的加油次数要大或者等于了 那么就剪 ...
- poj 2431 Expedition 贪心+优先队列 很好很好的一道题!!!
Expedition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10025 Accepted: 2918 Descr ...
- POJ 2431 Expedition (优先队列+贪心)
题目链接 Description A group of cows grabbed a truck and ventured on an expedition deep into the jungle. ...
- POJ 2431 Expedition(优先队列、贪心)
题目链接: 传送门 Expedition Time Limit: 1000MS Memory Limit: 65536K 题目描述 驾驶一辆卡车行驶L单位距离.最开始有P单位的汽油.卡车每开1 ...
- poj - 2431 Expedition (优先队列)
http://poj.org/problem?id=2431 你需要驾驶一辆卡车做一次长途旅行,但是卡车每走一单位就会消耗掉一单位的油,如果没有油就走不了,为了修复卡车,卡车需要被开到距离最近的城镇, ...
- poj 2431 Expedition 贪心
简单的说说思路,如果一开始能够去到目的地那么当然不需要加油,否则肯定选择能够够着的油量最大的加油站加油,,不断重复这个贪心的策略即可. #include <iostream> #inclu ...
- POJ 2431 Expedition 贪心 优先级队列
Expedition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30702 Accepted: 8457 Descr ...
- POJ 2431 Expedition(探险)
POJ 2431 Expedition(探险) Time Limit: 1000MS Memory Limit: 65536K [Description] [题目描述] A group of co ...
随机推荐
- C++操作Windows WIFI
原文链接地址:https://blog.csdn.net/just_do_1122/article/details/78031024 实现功能 无线网卡列表 无线热点扫面 无线 ...
- Java--Inheritance constructor继承中的构造方法问题(二)
看了前辈的博客,觉得这两点说的精辟:子类构造方法必须要调用父类的某个构造方法:被子类调用的父类构造方法在父类中必须是存在的. 上篇的例子有一点不明白,子类继承了父类的成员变量,父类的构造函数里引用了该 ...
- linux下ffmpeg安装(转)
1.ffmpeg下载地址: http://www.ffmpeg.org/download.html 2.解压 1 $ tar xzvf ffmpeg.tar.bz2 这里作者假设已经重命名为ffm ...
- flask学习之解决Internal Server Error问题的方式之一
最近在学习flask web development的时候,遇到了这么一个问题,就是照着书上敲的代码,跑起来是Internal server error,由于中途学的时候为了方便,改用pycharm来 ...
- [机器学习]-Adaboost提升算法从原理到实践
1.基本思想: 综合某些专家的判断,往往要比一个专家单独的判断要好.在”强可学习”和”弱可学习”的概念上来说就是我们通过对多个弱可学习的算法进行”组合提升或者说是强化”得到一个性能赶超强可学习算法的算 ...
- ASP.NET 使用ajaxupload.js插件出现上传较大文件失败的解决方法
在网上下载了一个ajaxupload.js插件,用于无刷新上传图片使的,然后就按照demo的例子去运行了一下,上传啊什么的都OK,但是正好上传的示例图片有一个比较大的,4M,5M的样子,然后上传就会报 ...
- HTML5标签的兼容处理
/* 当使用HTML5标签时为了兼容问题必须声明告诉浏览器这是标签 html5shiv.js这个插件已经帮你声明了所有HTML5的标签不需要自己声明 */ /* 这是告诉浏览器这是一个标签 */doc ...
- Codeforces 807 B T-Shirt Hunt
B. T-Shirt Hunt http://codeforces.com/problemset/problem/807/B time limit per test 2 seconds memory ...
- MYSQL5.6学习——mysqldump备份与恢复
MYSQL备份 冷备份:停止服务进行备份,即停止数据库的写入 热备份:不停止服务进行备份(在线) l mysql的MyIsam引擎只支持冷备份,InnoDB支持热备份,原因: InnoDB引擎是事务 ...
- uefi模式下win10安装双系统ubuntu18.04LTS
自己折腾了半天,血与泪啊(难得一个可爱的周末 wwww我一定要写下来 跟这个博客几乎一模一样了 https://blog.csdn.net/xrinosvip/article/details/8042 ...