POJ2431 二叉堆(优先队列)以及贪心算法
来源:互联网 发布:阿里云dns 地址 编辑:程序博客网 时间:2024/05/22 06:06
题目大意:
汽车从远处行驶向一个城镇,路途很远,汽油不足,沿途有一些加油站,给出加油站的位置和存油,在汽车油箱无限大的情况下求出所需加油次数最少为多少。
分析:
由于要加油的次数最少,因此最好是一次加的油量尽量多,而每次经过一个加油站,可以看做,今后可以在任意时刻使用这个站来加油,因此把当前汽油可达的加油站存入一个堆中,每次没油的时候从中取出最多的那次,当堆中没有油的时候就输出-1.
注意加油站的位置是距离城镇的位置
我想吐个槽。。。ACM题中的cows是宇宙间最聪明最傻缺最无理的生物。。。
#include<iostream>#include<queue>#include<algorithm>using namespace std;struct st{int dist;int fule;bool operator < (const st & o)const{return dist>o.dist;}}stop[10002];int main(){int i,j,k;int pos,p,l;int d;priority_queue< int > que;int n;int ans;while(scanf("%d",&n)!=EOF){stop[0].dist=0;stop[0].fule=0;for(i=1;i<=n;i++){scanf("%d%d",&stop[i].dist,&stop[i].fule);}sort(stop,stop+n+1);scanf("%d%d",&l,&p);pos=l;ans=0;for(i=0;i<=n;i++){d=pos-stop[i].dist;while(d>p){if(!que.empty()){p+=que.top();que.pop();ans++;}else{printf("%d",-1);return 0;}}pos=stop[i].dist;p-=d;que.push(stop[i].fule);}printf("%d",ans);}}
- POJ2431 二叉堆(优先队列)以及贪心算法
- POJ2431 优先队列+贪心
- POJ2431 Expedition (贪心,优先队列)
- [POJ2431]Expedition[贪心][优先队列]
- POJ2431-Expedition(优先队列 + 贪心)
- POJ2431 Expedition【贪心+优先队列】
- poj2431 Expedition(优先队列和贪心)
- BZOJ 1150 二叉堆(优先队列) + 贪心
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 二叉堆(优先队列)
- 优先队列(二叉堆)
- POJ2431---Expedition(加油问题,优先队列)
- poj2431 Expedition 优先队列
- 优先队列--poj2431
- POJ2431 Expedition (优先队列)
- POJ2431 数据结构 (优先队列)
- Eclipse下BASE64Decoder提示错误的解决办法
- kernel learning for extrinsic classification of manifold features+CVPR13
- java学习之clone
- 解释结构模型ISM-2-5
- XMPP协议相关
- POJ2431 二叉堆(优先队列)以及贪心算法
- C语言中使用结构体成员指向符号使用疑惑“->”和"."
- nginx基础配置
- UVa:10603 Fill
- 步伐快一点,时光慢一些
- 十进制转化十六进制
- 查看Oracle_表名、字段名、注释、进程及杀进程等常用语句(转别人的)
- 纠结中选择
- Oracle导单个表的数据