【P2107】小Z的AK计划(优先队列+贪心)
水一发优先队列的水题。。
这个题貌似以前有做过类似的。具体的方法是用大根堆辅助贪心算法得出正解。可以看出来,如果小Z走到了某个地方,那么他最远一定是到了这里,不可能有再走回来这种操作,因为很明显那样不是最优解。
然后我们基于刚才的考虑贪心,如果走的远近确定了,那么我们的选择一定是最小的那些店,维护一个大根堆,然后从小到大枚举位置,每枚举一次就入队一个数,如果当前的总和比疲劳值大了,就弹出队首元素。记得开longlong。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<iomanip>
#define re register
#define ll long long
using namespace std;
ll n,m,ans,maxx,sum;
struct market
{
ll x,t;
};
market a[];
priority_queue<int> q;
inline bool cmp(market x,market y)
{
return x.x<y.x;
}
int main()
{
cin>>n>>m;
for(re int i=;i<=n;i++) {cin>>a[i].x>>a[i].t;}
sort(a+,a+n+,cmp);
ll k=;
while(k<n)
{
k++;
if(a[k].x>=m)
break;
ll cnt=m-a[k].x;
sum+=a[k].t;
q.push(a[k].t);
maxx++;
while(sum>cnt)
{
sum-=q.top();
q.pop();
maxx--;
}
ans=max(maxx,ans);
}
cout<<ans;
}
【P2107】小Z的AK计划(优先队列+贪心)的更多相关文章
- Luogu P2107 小Z的AK计划 堆贪心
好久不做这种题了... 存一下每个点的位置和时间,由于达到某个位置跟之前去哪里AK的无关,所以在时间超限后,可以用大根堆弹掉之前消耗时间最大的,来更新答案,相当于去掉之前花费最大的,直到时间不在超限. ...
- luogu P2107 小Z的AK计划
最近复习了一下堆,于是去luogu上找一些简单题写一写 贪心的想,小z不会到一半以后回头去Ak,因为这样从时间上想肯定是不优的,他可以早在之间经过时就AK所以我们可以将所有机房按照横坐标排序可以想到的 ...
- [洛谷P2107] 小Z的AK计划
题目类型:贪心,堆 传送门:>Here< 题意:给出\(N\)个房间,每个房间距离起点的距离为\(x[i]\),每个房间可以选择进去和不进去,如果进去了那么要\(t[i]\)秒后才能出来. ...
- 洛谷P2107 【小Z的AK计划】
#include<iostream> #include<queue> #include<algorithm> using namespace std; struct ...
- [Luogu]小Z的AK计划
Description Luogu2107 Solution 一开始打了一个60分的暴力DP,结果一分都没得--本地调了好久才发现是没开long long. 由于我的DP方程没有任何性质,就是一个01 ...
- 【题解】小X的AK计划
题目描述 虽然在小X的家乡,有机房一条街,街上有很多机房.每个机房里都有一万个人在切题.小X刚刷完CodeChef,准备出来逛逛.机房一条街有n个机房,第i个机房的坐标为xi,小X的家坐标为0.小X在 ...
- [題解](貪心/堆)luogu_P2107小Z的AK計劃
清明講過一道類似的,難度略大的:P3545 [POI2012]HUR-Warehouse Store 兩道題類似,都是暫時先把前面的加進候選集合里,如果超出限制的話就拿現在這個和前面的交換, 相當於不 ...
- 【贪心】【P2117】小Z的矩阵
传送门 Description 小Z最近迷上了矩阵,他定义了一个对于一种特殊矩阵的特征函数G.对于N*N的矩阵A,A的所有元素均为0或1, 当然询问一个矩阵的G值实在是太简单了.小Z在给出一个N*N矩 ...
- 小Z爱序列(NOIP信(sang)心(bin)赛)From FallDream(粗制单调队列&单调栈的算法解析)
原题: 小Z最擅长解决序列问题啦,什么最长公共上升然后下降然后上升的子序列,小Z都是轻松解决的呢. 但是小Z不擅长出序列问题啊,所以它给了你一道签到题. 给定一个n个数的序列ai,你要求出满足下述条件 ...
随机推荐
- composer爆错:zlib_decode():data error
昨晚用nginx运行Yii的一个开源小项目,结果composer安装依赖一直报错,如下 Failed to decode response: zlib_decode(): data error 如果遇 ...
- JSF -> 导航(Navigation)
在使用jsf框架时,肯定会用到faces-config.xml. 而其中就会出现很多的Navigation项. 其实这些Navigation就是一些页面跳转的东西. 以下内容来自http://blog ...
- 数据链路层负载均衡 Linux Virtual Server
w 李智慧
- Ubuntu 16.04安装各种软件
Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...
- setlocale(LC_ALL, ""); 取值为空字符串" "(注意,不是NULL),则locale与本地环境所使用的编码方式相同(在本地化时,应该很有用);
在C运行库提供的多字节字符-宽字符转换函数:mbstowcs()/wcstombs()中,需要用到全局变量locale( locale encoding ),以指定多字节字符的编码类型 1. 功能: ...
- badboy脚本参数化和检查点
一.badboy脚本参数化 文本参数化 方式一:直接在Variablesl ist添加参数化变量和值,然后在Script里面找到对应需要参数化的内容-属性,进行替换,参数化名需要用${XX}引用: 方 ...
- Vue中watch的简单应用
Vue.js 有一个方法 watch,它可以用来监测Vue实例上的数据变动. 如果对应一个对象,键是观察表达式,值是对应回调,值也可以是方法名,或者是对象,包含选项. 下面写两个demo,参考demo ...
- PhpStorm2017.1版激活方法、汉化方法以及界面配置
本教程仅对2017.1版有效!!!!!! PhpStorm激活和汉化文件下载网址(提取密码:62cg) PhpStorm的介绍 PhpStorm是一个轻量级且便捷的PHP IDE,其旨在提高用户效率, ...
- python并发编程&多线程(二)
前导理论知识见:python并发编程&多线程(一) 一 threading模块介绍 multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性 官网链 ...
- mapdb与Redis区别:
Redis也能完全相同的工作,但必竟其独立于JVM之外通过Socket交互,能达到10万次/秒就很不了不起了 mapdb可直接嵌入到JVM运行空间,运行效率是Redis没法比的,单线程能达到 30万次 ...