安装服务 LA 4850
Posted zhang2
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安装服务 LA 4850相关的知识,希望对你有一定的参考价值。
题目大意
工程师需要安装n个服务,其中的第i个服务Ji需要Si个单位的时间,截止时间为Di,如果在截止时间之前完成任务不会收到惩罚,如果超时惩罚时间时Ci-di意思就是超时多少惩罚值就越大,从t=0时刻开始,找到两个惩罚值之和最小的任务。
分析
#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<queue> using namespace std; const int maxn = 800000 + 10; struct order int s, t; bool operator < (const order & a) const return s < a.s; ord[maxn]; priority_queue<order>q; bool cmp(const order &a, const order & b) return a.t < b.t || (a.t == b.t && a.s < b.s); int main() int t; cin >> t; while (t--) int n; cin >> n; for (int i = 0; i < n; ++i) cin>>ord[i].s>>ord[i].t; sort(ord, ord + n, cmp); while (!q.empty())q.pop(); int cur = 0; for (int i = 0; i < n; ++i) if (cur + ord[i].s <= ord[i].t) q.push(ord[i]); cur += ord[i].s; else if (q.empty())continue; order u = q.top(); if (u.s > ord[i].s) cur = cur - u.s + ord[i].s; q.pop(); q.push(ord[i]); printf("%d\n",q.size()); if (t)puts(""); return 0;
以上是关于安装服务 LA 4850的主要内容,如果未能解决你的问题,请参考以下文章
Debian 放弃了对 .la 文件的支持;我现在如何构建?