bzoj 4530 大融合(LCT維護子樹資訊)

2021-08-14 08:28:49 字數 934 閱讀 3699

傳送門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 ...