傳送門biu~
用lct維護子樹資訊。
lct維護子樹資訊(子樹資訊lct) lct維護邊權(邊權lct) 知識點講解
xsiz代表節點的虛兒子的size和。
rsiz代表該點在splay中的size加上該點的xsiz。
每次maintain操作可以更新節點的rsiz值。
增加乙個update函式來實現實兒子到虛兒子的轉化(改變節點xsiz值),在access和link這兩個改變邊的虛實關係的函式中呼叫。
#include
using
namespace
std;
struct node
inline
void rev()
inline
void update(node *o,int d)
inline
void pushdown()
inline
void maintain()
}*null=new node,p[100005];
node :: node()
void to_pushdown(node *o)
inline
void rotate(node *o,int d)
inline
void splay(node *o)
}inline
void access(node *o)
}inline
void move_to_root(node *o)
inline
void link(node *x,node *y)
inline
long
long query(node *x,node *y)
int main()
return
0;}
BJOI2014 大融合 lct維護虛子樹大小
lct在動態連邊和刪邊方面比較有優勢,但是在維護子樹資訊方面又沒有樹鏈剖分那麼方便。這道題算是lct維護虛子樹資訊比較裸的一道題。以s陣列為總的子樹大小,sx陣列為虛子樹大小。要維護虛子樹資訊 在lct原來的模板上有三個地方需要改。pushup函式 總子樹大小顯然是實子樹大小 虛子樹大小 i pus...
P4219大融合 LCT維護子樹資訊
給定 n nn個結點和 q qq 次操作,每個操作為如下形式 a xy a x y axy 在結點 x xx和y yy之間連線一條邊。q xy q x y qxy 給定一條已經存在的邊 x,y x,y x,y 求有多少條簡單路徑,其中包含邊 x,y x,y x,y 保證在任意時刻,圖的形態都是一棵森...
BZOJ 3779 重組病毒 LCT維護子樹資訊
題目大意 給定一棵樹,要求支援 將某個點到根的路徑染色 換根後將原來的根到現在的根的路徑染色 求某個點的子樹到根的平均顏色段數 比較麻煩的lct維護子樹資訊 變數名是照neither nor神犇抄的.意義相同,鏈結 因為要計算子樹到根的平均顏色段數,所以要維護子樹到 子樹的 根的顏色段數和 col ...