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;
}
相关推荐
贾斯汀玛尔斯1 天前
每天学一个算法--贪心算法(Greedy Algorithm)
算法·贪心算法
算法鑫探1 天前
贪心算法(C 语言实现)及经典应用
c语言·数据结构·算法·贪心算法
QC·Rex2 天前
Kubernetes 生产环境调试安全最佳实践:2026 年完整指南
安全·贪心算法·kubernetes
故事和你913 天前
洛谷-数据结构-1-3-集合3
数据结构·c++·算法·leetcode·贪心算法·动态规划·图论
王老师青少年编程5 天前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:士兵站队
c++·算法·贪心算法·csp·信奥赛·线性扫描贪心·士兵战队
计算机安禾5 天前
【数据结构与算法】第48篇:算法思想(三):贪心算法
c语言·开发语言·数据结构·算法·贪心算法·代理模式·图论
王老师青少年编程6 天前
csp信奥赛C++高频考点专项训练之贪心算法 --【线性扫描贪心】:分糖果
c++·算法·贪心算法·csp·信奥赛·线性扫描贪心·分糖果
语戚8 天前
力扣 2463. 最小移动总距离 —— 动态规划 & 贪心排序全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·dp
语戚10 天前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
ambition2024211 天前
从暴力搜索到理论最优:一道任务调度问题的完整算法演进历程
c语言·数据结构·c++·算法·贪心算法·深度优先