有關無旋treap一些常用函式

2021-08-21 18:56:51 字數 838 閱讀 9264

刷了一些平衡樹的題,基本都是用無旋treap寫的(比splay好寫的多),貼一些題目中經常用到的函式。。

1.merge(最基本的)

int mg(int x,int y)

else

}

2.split1(按sz切) 

void split1(int nw,int k,int &x,int &y)

}

3.split2(按權值切)

void split2(int nw,int k,int &x,int &y)

}

4.維護父親節點(可以方便的在treap上亂走。。)

void push_up(int x)

//在mg,split時的push_up裡加這行就可以

5.查詢某點在所在treap排名(需要先維護fa)

int ask(int x)

else x=node[x].fa;

} return ans;

}

6.insert(按大小插入)

void insert(int &a,int b)

7.找到節點所在treap的根

int rrr(int x)

8.合併兩棵treap(小並大保證複雜度)

void mm(int &a,int b)

void m(int a,int b)

hierarchyid有關的一些函式

於hierarchyid有關的一些函式主要有 getancestor 取得某乙個級別的祖先 getdescendant 取得某乙個級別的子代 getlevel 取得級別 getroot 取得根 isdescendantof 判斷某個節點是否為某個節點的子代 parse 將字串轉換為hierarchy...

C 的一些輸入有關函式

getline 的原型是 istream getline istream is string str char delim 實現整行輸入,包含空格 其中 istream is 表示乙個輸入流,譬如cin string str表示把從輸入流讀入的字串存放在這個字串中 可以自己隨便命名,str什麼的都可...

一些常用的函式

設定文字 test.getdlgitem text的id setwindowtext 顯示文字1 獲得當前目錄 getcurrentdirectory max path,buf 獲得當前程式檔名等 getmodulefilename getsystemdirectory getwindowsdire...