题目链接:题目详情 - L3-017 森森快递 (pintia.cn)

样例输入:
10 6
0 7 8 5 2 3 1 9 10
0 9
1 8
2 7
6 3
4 5
4 2
样例输出:
7
分析:题意就是让我们选取若干个不相交区间,使得每个区间的最小值的和最大。我们先来分析一下假如两个区间是相互包含的关系,那么我们应该怎样选取,可以发现我们应该选取小区间,原因很简单,因为小区间如果和其他区间冲突,那么大区间一定冲突,且小区间的区间最小值一定大于等于所包含这个小区间的大区间的区间最小值,所以我们可以考虑先对区间进行排序,排序方法就是按照r从小到大排序,r越小说明对后续区间产生冲突的可能性更小,所以更应该优先选取,而且如果后续有更优答案还可以替换掉该区间,我们可以把n个城市之间的线路看成n-1个点,那么第i个点的初始点权就是第i个点到第i+1个点所能承受的最大权重,然后我们按照排序后的路线进行询问,每次询问当前路线上的点的最小值,然后让该路线上的所有点权都减去这个最小值,答案加上这个最

文章介绍了一种利用线段树解决选取不相交区间,使区间最小值和最大的问题。首先对区间按结束点排序,然后使用线段树进行区间查询和修改,逐步替换不优的区间以优化答案。最终通过线段树实现动态维护区间信息,找到最优解。
最低0.47元/天 解锁文章
157

被折叠的 条评论
为什么被折叠?



