思路:
左偏樹裡面摻了一些並查集的應用
這裡放乙份左偏樹的**模板
重點就是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...