【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,你要求出满足下述条件 ...
随机推荐
- tomcat添加crt证书
使用keytool生成证书苹果手机添加后提示未验证,可以使用Apache的openssl生成证书导入到tomcat中. 使用Apache 生成证书:openssl genrsa 4096 > s ...
- 项目中lua(基础)
关于项目中lua任务(某些没弄懂,但lua上耗费时间有点长了不看了) 这段时间看了lua语法和项目中lua应用 .在lua中注册c库,在lua5.2中好像都是注册c库,相当于在lua中定义一个tabl ...
- Consul文档收藏
英文:https://www.consul.io/intro/getting-started/install.html 中文:http://www.liangxiansen.cn/2017/04/06 ...
- Qt 如何获取一个文件的 Icon 图标?
#include <QPixmap> #include <QString> #include <QFileInfo> #include <QFileIconP ...
- Unity使用native读取streamingasset里文件
需求是,使用native方式,读取apk包里的lua代码,读进c#,做解密 一准备unity工程 public class GameMain : MonoBehaviour { public cons ...
- Ubuntu系统下完全卸载和安装Mysql
删除 mysql sudo apt-get autoremove --purge mysql-server-5.0 sudo apt-get remove mysql-server sudo apt- ...
- 学习Hive和Impala必看经典解析
Hive和Impala作为数据查询工具,它们是怎样来查询数据的呢?与Impala和Hive进行交互,我们有哪些工具可以使用呢? 我们首先明确Hive和Impala分别提供了对应查询的接口: (1)命令 ...
- elementUI增加同级下级
<template> <div> <el-row> <el-col :span="4"> <el-button v-on:cl ...
- app开发需求文档怎么写
我们在开发app前都会做需求分析,这个app开发需求文档怎么写呢?一般可以从这几点入手:确定APP方案的目标,APP方案的受众分析,APP开发方案功能设计,APP的操作系统说明方案,APP是是否是原生 ...
- 剑指offer 面试50题
面试50题: 题目:第一个只出现一次的字符 题:在一个字符串(1<=字符串长度<=10000,全部由字母组成)中找到第一个只出现一次的字符,并返回它的位置. 解题思路一:利用Python特 ...