HDU 1512 左偏樹 並查集

2021-07-25 12:24:30 字數 603 閱讀 2053

思路:

左偏樹裡面摻了一些並查集的應用

這裡放乙份左偏樹的**模板

重點就是merge函式了……

int merge(int k1,int k2)
插入:合併原樹和新節點。

刪除最小值:合併左右子樹。

刪在某個地方的值:打個標記 以後用的時候再忽略

在這道題中 刪的時候 找到左右子樹 並查集變成它自己 再合併

//by siriusren

#include

#include

#include

using namespace std;

#define n 100050

int n,m,root[n],xx,yy,f[n];

struct tree}tr[n];

int find(int

x)int merge(int k1,int k2)

intpop(int

x)int main()

scanf("%d",&m);

for(int i=1;i<=m;i++)}}

}

HDU 1512 左偏樹 並查集

題意 有n只猴子,每只猴子都有乙個能力值.最初每只猴子都只認識自己.然後 給出m組詢問,每次都有兩隻猴子,如果他們相互認識輸出 1,否則他們會請出他們認 識的猴子中 能力值最大的猴子,這兩隻猴子自身的能力值除以2,然後兩隊猴子都 相互認識了.每次輸出這堆相互認識的猴子中能力值最高的.顯然需要乙個並查...

HDU1512 左偏樹 斜堆

本來我是在開開心心 淚流滿面 地刷scapegoat tree的,結果突然間就看見了乙個奇奇怪怪的東西 斜堆。因為昨天剛好學了左偏樹,於是就來回憶了一發,然後發現。既然有斜堆了為毛還要左偏樹啊!嗯好吧均攤確實不靠譜 此處 splay 但你告訴我為毛斜堆跑得比左偏樹快啊!好吧常數我吃了。其實斜堆和左偏...

HDU3938 並查集 並查集

先按邊權值排個序,每次加入一條邊,用並查集,關鍵看懂題。include include include include using namespace std const int maxn 10010 int n,m,q struct edge edges maxn 5 inline int cmp...