P2107 小Z的AK计划

Portal.

比较常规的反悔贪心。按照 x x x 从小到大选点,对于一个新到达的点,考虑它能否被选择。如果此时时间超过了 m m m,从前面的点按从大到小的顺序贪心地放弃 t i t_i ti 点,计算出选择这个点所能达到的全局点数。

注意要先假定这个点选,因为有可能放弃当前点,只是以当前位置为终止分界。

时间复杂度 O ( n log ⁡ n ) O(n\log n) O(nlogn)。

cpp 复制代码
#include <bits/stdc++.h>
using namespace std;
#define int long long

const int maxn=1e5+5;
struct node{int x,t;}a[maxn];
priority_queue<int> q;

bool cmp(node a,node b){return a.x<b.x;}

signed main()
{
	int n,m;cin>>n>>m;
	for(int i=1;i<=n;i++) cin>>a[i].x>>a[i].t;
	sort(a+1,a+n+1,cmp);
	int ans=0,tmp=0,cnt=0;
	for(int i=1;i<=n;i++)
	{
		tmp+=a[i].x-a[i-1].x+a[i].t,q.push(a[i].t),cnt++;
		if(tmp>m) while(!q.empty()&&tmp>m) tmp-=q.top(),q.pop(),cnt--;
		if(tmp>m) break;
		ans=max(ans,cnt);
	}
	cout<<ans;
	return 0;
}
相关推荐
饕餮怪程序猿17 分钟前
贪心算法经典应用:活动选择问题(C++实现)
c++·算法·贪心算法
唯唯qwe-16 小时前
Day22: 贪心算法 | 区间问题,左/右端点排序
算法·贪心算法
唯唯qwe-1 天前
Day21:贪心算法 | 加油站,分发糖果
算法·贪心算法
联系QQ 180809512 天前
基于FPGA的CORDIC算法实现:输出sin和cos波形(Quartus II版本)
贪心算法
前端小L3 天前
贪心算法专题(二):波动中的智慧——只取极值「摆动序列」
数据结构·算法·贪心算法
沟通QQ8762239655 天前
PLL锁相环程序+MATLAB仿真文件。 (SOGI+DQ)程序用stm32G431芯片写的(...
贪心算法
唯唯qwe-5 天前
Day20:贪心算法,跳跃游戏
python·算法·贪心算法
小龙报5 天前
【算法通关指南:基础算法篇】高精度专题:一篇破除超数运算问题
c语言·数据结构·c++·算法·链表·贪心算法·visual studio
来自于狂人6 天前
HCIE云计算超长考点精析
算法·贪心算法·云计算
永不停歇的蜗牛6 天前
K8S中Namespace(ns)、Pod、Service和ConfigMap(cm)四种重要的资源对象的关系
容器·贪心算法·kubernetes