扯淡(前言)
众所周知LCT可以支持关于点权的链修改,换根,LINK,CUT和查询链信息操作,但是总有那么些神犇(毒瘤)出题人会让你在支持链修改,换根,LINK和CUT操作的情况下去支持子树查询,或者维护关于边权的链修改,换根,LINK,CUT和链查询。网上似乎讲解这两种LCT写法的blog比较少或者不怎么能搜到?总之我来写一发
(LCT基础知识回顾)
为了方便说话先说一下下面可能出现的名词的意思(。其实大家可以先跳过这一段,如果后面没看懂我在写什么再回来看这里)
我们要用LCT维护一棵树,那么这棵树会有一个原树结构,以及一个当前在LCT里的结构,我们知道我们用LCT维护了一个原树的链剖分,凡是被剖分到同一条链里的点用一个splay以深度为关键字维护,而不同的链之间用虚边相连,虚边为只有儿子指向爹,爹不指向儿子