LCT模板(指標版)

2022-03-30 05:42:36 字數 944 閱讀 7526

本來是想做thuwc2017的泰勒展開xlct題的……

然後覺得陣列寫很麻煩……

然後就決定挑戰指標版……

然後寫得全是bug……

與bug鏖戰三千年後,有了這個指標版lct板子!

#include #include #include #include #include #define space putchar(' ')

#define enter putchar('\n')

using namespace std;

typedef long long ll;

template void read(t &x)

template void write(t x)

typedef long double ldb;

const int n = 300005;

int n, m;

struct node

bool which()

bool isroot()

void upt()

void pushdown()

} s[n];

void rotate(node *u)

void splay(node *u)

rotate(u);

}u->upt();

}void access(node *u)

}void makeroot(node *u)

node *findroot(node *u)

void link(node *u, node *v)

void cut(node *u, node *v)

int query(node *u, node *v)

void change(node *u, int x)

int main()

return 0;

}

動態樹LCT 模板

題目描述 輸入 第一行兩個整數n和m 接下來一行中n個整數表示初始點權 接下來m行每行乙個操作如上表所示。輸出 對於每乙個連線操作,若p和q不連通,輸出yes,並新增這條邊 否則輸出no 對於每乙個刪除操作,若p和q間有邊,輸出yes,並刪除這條邊,否則輸出no 對於每乙個查詢最大及查詢和,若p和q...

LCT模板題2 最長鏈

樹是任意兩點間僅有一條路徑的聯通圖,樹上的一條鏈定義為兩個點之間的路徑。在本題中定義一條鏈的長度為鏈上所有點的權值和。現有一棵帶點權樹,要對它進行一些操作,請你在第一次操作前和每一次操作後輸出這棵樹的最長鏈。lct splay的時候判gf 是 isroot f 下次注意 這題非常不錯的虛邊維護兒子資...

SDOI2008 洞穴勘測 LCT模板

bzoj 2049 傳送門 洛谷p2147 傳送門 這個大佬的lct詳解超級棒的!link cut tree的基本思路是用splay的森林維護一條條樹鏈。splay的森林,顧名思義,就是若干splay組成的東西。每個splay都有乙個根節點,所以lct裡的splay不能記錄根節點,因為根節點有好多。...