POJ2431 优先队列+贪心
题目大意:
见《挑战程序设计竞赛》P74。
我的理解:
优先队列+贪心
注意把输入的距离(加油站到终点)改为起点到加油站。
因为求得是最优解,需要尽可能少的加油站,所以我们每次希望去加油的时候 加最大的那个,因而将加油站push进priority_queue(堆结构,默认每次弹出最大值)
在到达加油站 i 时,就获得了一次在之后的任何时候都可以在加 stop[i].second 单位汽油的权利。
#include<iostream>
#include<queue>
using namespace std;
const int maxn = 10000 + 10;
typedef pair<int, int> P;
int L, p, N;
P stop[maxn];
int cmp(P p1, P p2) {
    return p1.first < p2.first;
}
void solve() {
    //技巧
    stop[N].first = L;
    stop[N].second = 0;
    N++;
    priority_queue<int> que;
    int ans = 0, pos = 0, tank = p;
    for (int i = 0; i < N; i++) {
        int d = stop[i].first - pos;
        while (tank - d < 0) {
            if (que.empty()) {
                puts("-1");
                return;
            }
            tank += que.top();
            que.pop();
            ans++;
        }
        tank -= d;
        pos = stop[i].first;
        que.push(stop[i].second);
    }
    cout << ans << endl;
}
int main()
{
    //freopen("in.txt", "r", stdin);
    while (scanf("%d", &N) != EOF) {
        for (int i = N - 1; i >= 0; i--) {
            cin >> stop[i].first >> stop[i].second;
        }
        cin >> L >> p;
        for (int i = 0; i < N; i++) {
            stop[i].first = L - stop[i].first;
            //cout<<A[i]<<" "<<B[i]<<" ";
        }
        sort(stop, stop + N, cmp);
        solve();
    }
    return 0;
}
												
											POJ2431 优先队列+贪心的更多相关文章
- POJ2431 优先队列+贪心 - biaobiao88
		
以下代码可对结构体数组中的元素进行排序,也差不多算是一个小小的模板了吧 #include<iostream> #include<algorithm> using namespa ...
 - 最高的奖励 - 优先队列&贪心 / 并查集
		
题目地址:http://www.51cpc.com/web/problem.php?id=1587 Summarize: 优先队列&贪心: 1. 按价值最高排序,价值相同则按完成时间越晚为先: ...
 - hdu3438 Buy and Resell(优先队列+贪心)
		
Buy and Resell Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)To ...
 - poj2431(优先队列+贪心)
		
题目链接:http://poj.org/problem?id=2431 题目大意:一辆卡车,初始时,距离终点L,油量为P,在起点到终点途中有n个加油站,每个加油站油量有限,而卡车的油箱容量无限,卡车在 ...
 - H - Expedition  优先队列 贪心
		
来源poj2431 A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Being ...
 - ZOJ-3410Layton's Escape(优先队列+贪心)
		
Layton's Escape Time Limit: 2 Seconds Memory Limit: 65536 KB Professor Layton is a renowned arc ...
 - CodeForces - 853A Planning (优先队列,贪心)
		
Helen works in Metropolis airport. She is responsible for creating a departure schedule. There are n ...
 - 1350: To Add Which? (优先队列+贪心 或者 数组模拟)
		
1350: To Add Which? Submit Page Summary Time Limit: 1 Sec Memory Limit: 128 Mb Submitt ...
 - 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 C.二元-K个二元组最小值和最大-优先队列+贪心(思维)
		
链接:https://ac.nowcoder.com/acm/contest/558/C来源:牛客网 小猫在研究二元组. 小猫在研究最大值. 给定N个二元组(a1,b1),(a2,b2),…,(aN, ...
 - hdu 4544 优先队列+贪心
		
题意:最近,减肥失败的湫湫为发泄心中郁闷,在玩一个消灭免子的游戏.游戏规则很简单,用箭杀死免子即可.箭是一种消耗品,已知有M种不同类型的箭可以选择,并且每种箭都会对兔子造成伤害,对应的伤害值分别为Di ...
 
随机推荐
- LabVIEW基于机器视觉的实验室设备管理系统(3)
			
目录 行动计划 创建用户信息数据库 后面板连线 初始化 确认修改 确认id 判断旧密码是否正确 判断两次输入的新密码是否相同 修改用户数据库中的密码 结尾 效果演示 上一期我们完成了欢迎登录和信息查询 ...
 - Java——设计模式
			
一.概述 设计模式是历代程序员总结出的经验 二.分类 创建型模式:简单工厂模式 工厂方法模式 单例模式:饿汉式(开发) 懒汉式(面试) 行为型模式 结构型模式 三.简单工厂模式 一个工厂中可以创建很多 ...
 - C/C++ 常用加密与解密算法
			
计算机安全和数据隐私是现代应用程序设计中至关重要的方面.为了确保数据的机密性和完整性,常常需要使用加密和解密算法.C++是一种广泛使用的编程语言,提供了许多加密和解密算法的实现.本文将介绍一些在C++ ...
 - Object.assign () 和深拷贝
			
先看看啥叫深拷贝?啥叫浅拷贝? 假设B复制了A,修改A的时候,看B是否发生变化: 如果B跟着也变了,说明是浅拷贝,拿人手短!(修改堆内存中的同一个值) 如果B没有改变,说明是深拷贝,自食其力!(修改堆 ...
 - 【Android】Android Bmob后端云配置
			
简介 开发一个具有网络功能的应用,在Bmob移动应用云存储平台中,只需要注册一个账号,就可以实现申请创建任意多个数据库,获得对应的key,下载对应版本的SDK,并嵌入到移动应用中,调用存取的KPI,进 ...
 - 如何为项目配置opencv
			
如何为项目配置opencv 13/100 发布文章 public669 未选择任何文件 new 配置: 包含目录: D:\OpenCV\opencv\build\include D:\OpenCV\o ...
 - Mybatis-Flex之基础查询
			
1.selectOneById /** * selectOneById(id):根据主键查询数据. */ @Test public void testSelectOneById() { /** * S ...
 - HDU-3591        混合背包
			
The trouble of Xiaoqian Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...
 - 华企盾DSC可能涉及的Linux命令
			
掌握Linux系统的基本命令 详细使用请参考:Linux命令大全 uname 查看系统信息 wget 文件下载 chmod 改变文件或目录权限 ls 显示指定工作目录下的内容及属性信息 cd 切换当前 ...
 - IDM HOSTS本地注册 屏蔽的网址
			
127.0.0.1 registeridm.com127.0.0.1 www.registeridm.com127.0.0.1 www.internetdownloadmanager.com127.0 ...