题目描述
https://www.luogu.com.cn/problem/P2949
简要题意:现在有 $n$ 个工作可以完成,完成每个工作需要 $1$ 的时间,完成第 $i$ 个工作可以获得 $c_i$ 的收益,第 $i$ 个工作的截止时间是 $d_i$,求最大获利
$n\le 10^5$
Solution
由于所有工作的完成时间相同,所以我们将所有工作按照截止时间排序,用小根堆维护已经选的工作,如果当前工作无法完成,就去替换一个收益最小的工作
时间复杂度 $O(n\log n)$
1 |
|
https://www.luogu.com.cn/problem/P2949
简要题意:现在有 $n$ 个工作可以完成,完成每个工作需要 $1$ 的时间,完成第 $i$ 个工作可以获得 $c_i$ 的收益,第 $i$ 个工作的截止时间是 $d_i$,求最大获利
$n\le 10^5$
由于所有工作的完成时间相同,所以我们将所有工作按照截止时间排序,用小根堆维护已经选的工作,如果当前工作无法完成,就去替换一个收益最小的工作
时间复杂度 $O(n\log n)$
1 | #include <iostream> |