Brief description:
… 动态维护一棵点权有根树。。支持以下操作:
1 u: 换根。2 x y v: 将 x->y 的路径上的点权全部修改为 v3 u: 询问 u 为根的子树内的最小值。
Analysis:
。。原生动态树无法支持子树操作,DFS() 序列无法支持路径操作。。。
… 但是树链剖分后,一段路径在 DFS() 序列中被分割成不超过 logn 段区间。。。。
。。因此可以直接用 DFS() 序列做。。
至于换根操作。。。以下来自何老师的原文。。。
PS:对于换根,ETT不用换根的,对于要换根的题,可以这么考虑,查询u的时候,如果新的根在u的上方,u的子树就是原来那个子树,如果新的根是u,就是整个树,如果新的根v是在u下面,只要找到u到v路径上的第一个结点,也就是u的孩子,u新的子树就是去掉这个点所在子树剩下的那些。
虽然以上是在说 ETT。。但是这里也是一样的。。)
https://gist.github.com/lychees/5960424
。。。另。BZOJ 上数据太大 cin 会 RE。。(似乎是 HUSTOJ 的 judge 限制了 xxxx 的调用次数。?。。
不深究。。参见 https://gist.github.com/lychees/5958321




Alca
Amber
Belleve Invis
Chensiting123
Edward_mj
Fotile96
Hlworld
Kuangbin
Liyaos
Lwins
LYPenny
Mato 完整版
Mikeni2006
Mzry
Nagatsuki
Neko13
Oneplus
Rukata
Seter
Sevenkplus
Sevenzero
Shirleycrow
Vfleaking
wangzhpp
Watashi
WJMZBMR
Wywcgs
XadillaX
Yangzhe
三途川玉子
About.me
Vijos

切……都不提一下窝的n log^2 n会t的lct……= 3= /$:T_T
那啥。。。你的程序好像wa了。。。
/$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz /$:Orz