学习倍增法得到的启示 - LCA倍增法学习

学习了神牛键盘艺术家写的博客:https://blog.csdn.net/lw277232240/article/details/72870644后,看到

大神说有很多类似的数组

想到的确,树这玩意也可以不是树,就是拼接起来的链,数组

因为有树链剖分这样的东西,树上路径的复杂度可以降到nlog2n,

有了倍增法,对于树的向上求解貌似也可以降低到O(logn),他提到的思想,就是在树的向上的链里面倍增(二分)

不要仅仅局限在LCA上,也可以是其他的权,只要从根部向下延申是非严格单调的,

例如:在LCA问题上,如果i结点为a和b的公共祖先,那么father[i]肯定也是。

如果a和b的前第i代祖先相同,那么他们的前第i+1代祖先也肯定相同,这就是从根部向下延申是非严格单调的。

 

这种倍增其实不也是一种二分么

(由于非线性结构,所以二分的表现形式不同,使用了二维数组和二进制的思想(类似背包的二进制))

 

所以学了树链剖分之后,觉得好像树挺简单的,毕竟可以转化为区间问题了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值