#include <bits/stdc++.h>
#define ll long long
#define pii pair<int, int>
using namespace std;
const int N = 1e5 + 10;
// 定义一个结构体来存储每个工作的截止时间和利润
struct node {
int t, x;
};
// 定义一个数组来存储所有的工作
node a[N];
int n;
// 比较函数,用于按照截止时间对工作进行排序
bool cmp(node a, node b) {
return a.t < b.t;
}
int main() {
cin >> n;
// 读取每个工作的截止时间和利润
for (int i = 1; i <= n; i++) {
cin >> a[i].t >> a[i].x;
}
// 按照截止时间对工作进行排序
sort(a + 1, a + 1 + n, cmp);
// 定义一个最小堆,用于存储当前选择的工作的利润
priority_queue<int, vector<int>, greater<int>> q;
ll ans = 0;
// 遍历所有工作
for (int i = 1; i <= n; i++) {
// 如果当前工作的截止时间大于堆的大小,则将该工作加入堆中
if (q.size() < a[i].t) {
q.push(a[i].x);
ans += a[i].x;
}
// 否则,如果当前工作的利润大于堆顶的利润,则替换堆顶的工作
else if (q.size() && q.top() < a[i].x) {
ans = ans - q.top() + a[i].x;
q.pop();
q.push(a[i].x);
}
}
// 输出最大总利润
cout << ans;
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
2022-09-30 TZOJ 3692: 紧急援救 最短路/dijstra