poj 1258 並查集的基本應用 最小生成樹

2022-03-12 13:19:22 字數 780 閱讀 8254

再次做並查的題目。本題用kruskar方法做。我開始沒有按秩(即所包含的層數)來union_set結果wa,後來改了之後就ac了。為什麼呢??不管,以後記得要加上按秩來合併吧。

這題有個技巧就是只用輸入上半個矩陣就ok了,因為是對稱的。看別人用prim方法做也挺簡單的,接下來來學習一下prim演算法吧。

kruskar:

#include #include 

#include

using

namespace

std;

#define max 101

intfather[max];

intrank[max];

intn,ans;

struct

noden[max*max/2

];bool

cmp(node a,node b)

void make_set(intx)}

int find_set(int

x)void union_set(int

i)

else

father[px]=py;

}ans+=n[i].len;

}int

main()

else}}

sort(n,n+k,cmp);

ans=0; //

pathsnum=n;

for(i=0; i)

printf(

"%d\n

",ans);

}return0;

}

week6 戴好口罩! 並查集的基本應用

分析總結 大家出門還是要戴好口罩噢?新型冠狀病毒肺炎 corona virus disease 2019,covid 19 簡稱 新冠肺炎 是指2019新型冠狀病毒感染導致的肺炎。如果乙個感染者走入乙個群體,那麼這個群體需要被隔離!小a同學被確診為新冠感染,並且沒有戴口罩!危!時間緊迫!需要盡快找到...

並查集的應用

特點 1,都有乙個陣列儲存它的根節點 2,用vis陣列儲存其是否訪問過 3,如果cnt 1 說明該圖是連通的。連通圖中只有根節點的父節點是自身,cnt應該是1 解決的題目 1,題目已經給了圖上頂點之間的關係,通過頂點之間的關係,求連通分量的個數 include stdio.h int bin 100...

並查集的應用

並查集可以有很多應用。比如權值並查集或帶擴充套件域的並查集,可以來維護一些可傳遞的關係。當然,並查集最直接的應用,則是來維護集合的的連通關係。第一題題意 給出一幅圖,以及一系列操作,每次操作刪去乙個點,及這個點相關的所有邊,並輸出刪點之後的連通塊個數。思路 這道題把過程倒著來就好了,可以看成建圖的過...