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;
}
相关推荐
庸子13 小时前
Kubernetes调度器深度解析:从资源分配到亲和性策略的架构师之路
java·算法·云原生·贪心算法·kubernetes·devops
_OP_CHEN21 小时前
算法基础篇:(八)贪心算法之简单贪心:从直觉到逻辑的实战指南
c++·算法·贪心算法·蓝桥杯·算法竞赛·acm/icpc·简单贪心
不夜牛仔2 天前
算法笔记17 - 贪心算法介绍与思路 | 路灯摆放问题 | 活动安排问题 | 最低字典序拼接 | 金条分割问题 | 项目投资问题
笔记·算法·贪心算法
愿没error的x3 天前
动态规划、贪心算法与分治算法:深入解析与比较
算法·贪心算法·动态规划
Einsail4 天前
贪心算法,优先队列(大小根堆使用)
算法·贪心算法
leoufung4 天前
贪心算法理论与应用——以股票买卖问题为例
算法·贪心算法
Nebula_g7 天前
C语言应用实例:硕鼠游戏,田忌赛马,搬桌子,活动选择(贪心算法)
c语言·开发语言·学习·算法·游戏·贪心算法·初学者
一只鱼^_7 天前
力扣第 474 场周赛
数据结构·算法·leetcode·贪心算法·逻辑回归·深度优先·启发式算法
小欣加油9 天前
leetcode 860 柠檬水找零
c++·算法·leetcode·职场和发展·贪心算法
不染尘.10 天前
2025_11_5_刷题
开发语言·c++·vscode·算法·贪心算法·动态规划