POJ2431 Expedition 贪心
正解:贪心
解题报告:
先放个传送门鸭,题目大意可以点$Descriptions$的第二个切换成中文翻译
然后为了方便表述,这里强行改一下题意(问题是一样的只是表述不一样辣,,,
就是说现在在高速公路上行驶,初始有$K$的油量,每走一公里要消耗一单位的油,然后路上有$N$个加油站,离终点的距离分别为$A_i$,每次经过一个加油站可以选择加或者不加,加就能加$B_i$的油量,然后要求路上不能存在没油的情况,问最少要加几次油
然后就考虑可以理解成,每经过一个加油站,就相当于有加油的权利,所以把它加入堆中,当没油的时候从堆中找出油量$max$就好
然后就做完辣!这题还是比较水的$QAQ$
#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
#define il inline
#define gc getchar()
#define t(i) edge[i].to
#define mp make_pair
#define ri register int
#define rb register bool
#define rc register char
#define lb(x) lower_bound(st+1,st+st_cnt,x)-st
#define rp(i,x,y) for(ri i=x;i<=y;++i)
#define my(i,x,y) for(ri i=x;i>=y;--i)
#define e(i,x) for(ri i=head[x];i;i=edge[i].nxt) const int N=1e4+;
int K,f,n,nw=,as;
struct nod{int a,b;}node[N];
priority_queue<int>Q; il int read()
{
rc ch=gc;ri x=;rb y=;
while(ch!='-' && (ch<'' || ch>''))ch=gc;
if(ch=='-')ch=gc,y=;
while(ch>='' && ch<='')x=(x<<)+(x<<)+(ch^''),ch=gc;
return y?x:-x;
}
il bool cmp(nod gd,nod gs){return gd.a<gs.a;} int main()
{
freopen("2431.in","r",stdin);freopen("2431.out","w",stdout);
n=read();rp(i,,n)node[i]=(nod){read(),read()};f=read();K=read();rp(i,,n)node[i].a=f-node[i].a;sort(node+,node++n,cmp);
node[++n].a=f;node[n].b=;
rp(i,,n)
{
while(K<node[i].a && !Q.empty())K+=Q.top(),Q.pop(),++as;
if(K>=node[i].a)Q.push(node[i].b);
}
if(K>=f)printf("%d\n",as);else printf("-1\n");
return ;
}
这儿是代码鸭!
POJ2431 Expedition 贪心的更多相关文章
- POJ2431 优先队列+贪心 - biaobiao88
以下代码可对结构体数组中的元素进行排序,也差不多算是一个小小的模板了吧 #include<iostream> #include<algorithm> using namespa ...
- poj 2431 Expedition 贪心
简单的说说思路,如果一开始能够去到目的地那么当然不需要加油,否则肯定选择能够够着的油量最大的加油站加油,,不断重复这个贪心的策略即可. #include <iostream> #inclu ...
- POJ2431 Expedition(排序+优先队列)
思路:先把加油站按升序排列. 在经过加油站时.往优先队列里增加B[i].(每经过一个加油站时,预存储一下油量) 当油箱空时:1.假设队列为空(能够理解成预存储的油量),则无法到达下一个加油站,更无法到 ...
- poj2431 Expedition优先队列
Description A group of cows grabbed a truck and ventured on an expedition deep into the jungle. Bein ...
- 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 贪心 优先级队列
Expedition Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30702 Accepted: 8457 Descr ...
- POJ 2431 Expedition (贪心+优先队列)
题目地址:POJ 2431 将路过的加油站的加油量放到一个优先队列里,每次当油量不够时,就一直加队列里油量最大的直到能够到达下一站为止. 代码例如以下: #include <iostream&g ...
- poj2431 Expedition
直接代码... #include<string.h> #include<stdio.h> #include<queue> #include<iostream& ...
随机推荐
- Retrieve id of record just inserted into a Java DB (Derby) database
https://stackoverflow.com/questions/4894754/retrieve-id-of-record-just-inserted-into-a-java-db-derby ...
- iLBC
iLBC是一种专为包交换网络通信设计的编解码,优于目前流行的G.729.G.723.1,对丢包进行了特有处理,即使在丢包率 相当高的网络环境下,仍可获得非常清晰的语音效果.
- 阿里云ECS服务器主机安装多个网站
web|服务器|站点 Windows 2000 Server安装成功后,一般会启动一个默认的Web站点,为整个网络提供Internet服务.在中小型局域网中,服务器往往只有一台,但是一个Web站点显然 ...
- 检测浏览器是否支持某个css属性
以浏览器是否支持translate3d 为例说明,当然现代浏览器已经支持该属性.如果浏览器实现了带有前缀的某个属性,比如说支持-webkit-transform,但是不支持直接写transform,可 ...
- mysql基础---->mybatis的批量插入(一)
这里面记录一下使用mybatis处理mysql的批量插入的问题,测试有可能不准.只愿世间风景千般万般熙攘过后,字里行间,人我两忘,相对无言. mybatis的批量插入 我们的测试主体类是springb ...
- Unity Editor工具-代码里复制Component
//CopyComponent ublic static T CopyComponent<T>(T original, GameObject destination) where T : ...
- Redis 下载与安装(Windows版)
下载 1.Github下载地址:https://github.com/MicrosoftArchive/redis/releases 2.百度网盘下载地址:Redis-x64-3.2.100.zip ...
- objective-c启用ARC时的内存管理 (循环引用)
PDF版下载:http://download.csdn.net/detail/cuibo1123/7443125 在Objective-C中,内存的引用计数一直是一个让人比较头疼的问 ...
- jenkins 使用curl调用时带文件参数
最近在使用jenkins时,需要使用curl去调用,但原有的jenkins中需要有file参数,baidu查询之未找到. 特意记录下 curl -X POST http://localhost:808 ...
- 搞懂MapReduce
MapReduce的主要思想就是将计算任务分发至多台计算机(slave),然后master综合计算机结果.所以就涉及到多台计算机通信和同步的问题,这个应该由hadoop完成,把环境配置好后就像单机操作 ...