题目
链接
题意简述
有 $n \ (n <= 10000)$ 个演讲,一次只能举行 $1$ 个。
某一演讲结束的瞬间可以立即开始另一个演讲。
计算最大的可能演讲总时间。
思路
DP
转移方程显而易见(设开始为 $l$ ,结束为 $r$ ):
问题是不好转移啊2333。
考虑用线段树维护最大值。
单点更新,区间求最大值即可。
时间复杂度: $O(nlogn)$
代码
1 |
|
杂项
- 这里记录开始和结束用了 $std::pair$ 实现,$std::pair$ 大法好!
根本不需要 $std::pair$ 好不好!可以直接用两个数组实现!