练习优先队列的第一道题

题意:

一辆卡车需要行驶 $L$ 的距离, 卡车油箱里有 $P$ 单位的油 , 每行驶一单位长度耗费一单位的油, 在沿途有 $N$ 个加油站 ,第 $i$ 个加油站在距离起点 $Ai$ 的位置,可以加 $Bi$ 单位的油,假设油箱容量无限大, 最少加多少次油可以到达终点

样例:

$N = 4, L = 25, P = 10$

$A$ = {10, 14, 20, 21}

$B $= {10, 5, 2, 4}

最少加油次数:2

题解:

使用从大到校的顺序依次取出数值的优先队列,在经过加油站的时候向优先队列里加入 $Bi$, 油箱空的时候如果优先队列也是空的那么无法到达,反之取出 $que.top$, 给油箱加油

时间复杂度:$O(N*log(N))$

代码:

#include

using namespace std;

const int maxn = 1e5 + 10;

int N, L, P;

int A[maxn], B[maxn];

void solve() {

A[N] = L;

B[N] = 0;

N ++;

priority_queue que;

int ans = 0, pos = 0, tank = P;

for(int i = 0; i < N; i ++) {

int d = A[i] - pos;

while(tank - d < 0) {

if(que.empty()) {

printf("-1\n");

return ;

}

tank += que.top();

que.pop();

ans ++;

}

tank -= d;

pos = A[i];

que.push(B[i]);

}

printf("%d\n", ans);

}

int main() {

scanf("%d%d%d", &N, &L, &P);

for(int i = 0; i < N; i ++)

scanf("%d%d", &A[i], &B[i]);

solve();

return 0;

}

poj2431java_POJ 2431 Expedition相关推荐

  1. POJ 2431 Expedition 优先队列

    由于油箱是无限的,所以每次经过加油站都不选择加油,等到后面油不够了,再来"反悔",把前面经过的油站的油加上,尽可能选量大的,用优先队列维护. //#pragma comment(l ...

  2. POJ 2431 Expedition(贪心+优先队列)

    题目链接:点击打开链接 贪心策略: 当车燃料没有耗尽的时候,就将沿途路过的加油站全都入队 因为这些加油站是可路过的,且车的邮箱容量无限,所以我们可以看作这些加油站随时都能给车提供油 为了使加油次数最少 ...

  3. POJ的题目分类(两个版本)

    版本一: 简单题 1000A+B Problem 1001Exponentiation 1003 Hangover 1004 Financial Management 1005 I Think I N ...

  4. POJ前面的题目算法思路【转】

    1000 A+B Problem 送分题 49% 2005-5-7 1001 Exponentiation 高精度 85% 2005-5-7 1002 487-3279 n/a 90% 2005-5- ...

  5. POJ 超详细分类

    POJ 各题算法 1000    A+B Problem            送分题     49%    2005-5-7 1001    Exponentiation         高精度   ...

  6. 【POJ No. 2431】 丛林探险 Expedition

    [POJ No. 2431] 丛林探险 Expedition 北大OJ 题目地址 [题意] 一群人开着一辆卡车冒险进入丛林深处,卡车油箱坏了,每走1米就会漏1升油,他们需要到最近的城镇(距离不超过10 ...

  7. 2019_GDUT_新生专题V算法优化 F. Expedition POJ 2431

    题目: Language: Expedition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 31110 Accepted: ...

  8. 【贪心算法】poj 2431: Expedition(最优加油方法)

    题目描述(传送门) Description A group of cows grabbed a truck and ventured on an expedition deep into the ju ...

  9. SP348 EXPEDI - Expedition(有趣的贪心,优先队列)

    SP348 EXPEDI - Expedition 1 4 4 4 5 2 11 5 15 10 25 10 2 以下来自<挑战程序设计竞赛> 以及我的辣鸡程序(竟然没超时!) #incl ...

最新文章

  1. [HDF]hdf-4.2.6类库的使用
  2. LaTex 使用特殊章节符号 (§)
  3. Linux定时任务Crontab学习笔记
  4. webview与js交互
  5. ABAP Netweaver, Hybris Commerce和SAP 云平台的登录认证
  6. vue element-ui登录页面源码
  7. 新工科背景下的计算机类专业人才培养探讨
  8. python——文本简单可逆加密
  9. java文件怎么一行一行读,Java 读文件内容如何显示在一行上
  10. 【ARC083E】Bichrome Tree
  11. 通过 HttpClient 下载 文件
  12. 用蒙特卡洛仿真估计π的值
  13. 命令行获取本地安全策略
  14. 全赔你们要1200亿!知网哭穷:我们一年净赚还不到2亿
  15. freyja 将引入另外一项功能大幅提高服务器性能
  16. Hexo博客搭建教程
  17. 数据分析与爬虫实战视频——学习笔记(四)(糗事百科、天善智能、当当商城、sql输出)
  18. 本周最新文献速递20210815
  19. 如何设置ul中li的行距
  20. 目标检测评价指标:精确度mAP

热门文章

  1. CentOS 谢幕,Anolis OS 带来无限可能的未来
  2. 阿里推出“阿里云网盘”App;Linux 发布 29 周年​| 极客头条
  3. 自动化如何帮助全球共抗疫情?
  4. 如何高效地远程部署?Fabric 来支招!
  5. 10 倍高清不花!大麦端选座 SVG 渲染
  6. 如何使用 Python 构建一个“谷歌搜索”系统? | 内附代码
  7. ofo 退押金出新招;快手回应“弃拼多多联手阿里”;Julia 1.3 发布 | 极客头条...
  8. 装机量 2 亿,这款国产物联网操作系统为何是“小而美”?
  9. 科学家之殁,竟是区块链之过?
  10. A 站彻底要凉?近千万条用户数据外泄!