COGS 526 又是一道模板題 左偏樹

2021-07-04 16:24:25 字數 645 閱讀 2986

這不剛剛學會寫左偏樹嘛,cogs上正好有個左偏樹的分類,本來想做第一道,usaco jan09的安全路徑,可是那道題謎一樣的題目描述嚇到我了,於是就看了下面那一道,就是這道題。相當於又粘了一下模板。

只需要在結構體中加上乙個fa,方便給出節點找出樹根,再用並查集判斷兩隻猴子是否在乙個堆中(就是已經是朋友的都在乙個大根堆中,最開始有n個大根堆)就可以。我沒仔細想是否可以直接用並查集的樹根表示堆的樹根,或者只需要用並查集來做(偷個懶嘿嘿)。

每次給出要爭吵的猴子a和b,用並查集判斷如果他們是朋友輸出-1,如果不是,找出a,b在的堆的根a,b,分別合併a,b的左右孩子,再合併一下。之後把a,b的資料更改一下:權值除以2,左右孩子設為0,再插入到堆中即可。最後輸出堆頂。

#include #include #include #include using namespace std;

int n, m, f[100005];

struct nodet[100005];

int find(int x)

int merge(int a, int b)

int main()

scanf("%d", &m);

while(m--)

}return0;

}

UVALive 8080 又是一道dfs題

includeusing namespace std vector a 200000 int d 200000 int k int dfs int u,int par int sum 0 int res 2000 int cou 0 for int i 0 i t int cc 1 while t ...

一道演算法題

兩個燒杯,乙個放糖乙個放鹽,用勺子舀一勺糖到鹽,攪拌均勻,然後舀一勺混合 物會放糖的燒杯,問你兩個燒杯哪個雜質多?一樣多吧 對的 為啥?是不是因為 糖和鹽本來就是均勻的 因為,就算不攪拌均,你放一勺過去,那邊放一勺不含雜質的過來,那麼都是一勺雜之 如果攪拌均勻的話也是一樣 小依 21 45 32 也...

一道演算法題

1.上午主要做了對翻譯任務的劃分,下午把 翻譯完畢。2.明天要講的演算法題 對乙個集合,求出其連續元素組成的子集中,和最大的子集 我對這道題的理解是 1 若集合中最小值大於0,意味著所有的都大於0,則最大的子集和,為所有值加起來 2 若集合中最大值小於0,意味著所有的都小於0,則最大的子集和,為集合...