20.07.27总结

今天用脑子把树链剖分补完了,没有写代码,简单来说说吧。

碰到了一道题,要求从 a a a走到 b b b,找出两个点 x , y x,y x,y满足 d i s ( a , x ) < d i s ( a , y ) dis(a,x)<dis(a,y) dis(a,x)<dis(a,y)使 w [ y ] − w [ x ] w[y]-w[x] w[y]w[x]最大。这里用树链剖分把树上问题划归到序列上。对于序列上的话,可以考虑用线段树维护。从 [ L , R ] [L,R] [L,R]可以分为 [ L , m i d ] [L,mid] [L,mid] [ m i d + 1 , R ] [mid+1,R] [mid+1,R]各自内部的最大值以及一个在左边区间一个在右边区间。这样只要维护一个区间内最大值,最小值,以及顺差最大值,逆差最大值(即答案)。因为树上从左向上再从右向下与反过来的是不一样的,在序列上是完全相反的过程,所以要有个顺差以及一个逆差。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值