L3-017 森森快递(线段树+贪心)

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

题目链接:题目详情 - 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个点所能承受的最大权重,然后我们按照排序后的路线进行询问,每次询问当前路线上的点的最小值,然后让该路线上的所有点权都减去这个最小值,答案加上这个最

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值