hdu1875kruskal簡單應用。

2021-06-20 08:13:41 字數 488 閱讀 4346

標記是dificulty 2,水,開始kruskal時練手題,只需開始時資料處理下,不符合要求的邊不要,要理解並查集和kruskal,就簡單了,判斷下是否聯通圖,(只需在記加入有效邊時候統計連通分支數即可),生成樹必是n-1條邊,有效加入次數為n-1次,少與之便不連通了,在杭電總能1a。。。在poj從未1a。。。。

#include#include#include#include#includeusing namespace std;

const int inf=0x3f3f3f3f;

int fa[102];

int father(int x)

struct edge

;struct point

;bool my(const edge &a,const edge &b)

}sort(vv.begin(),vv.end(),my);

double ans=0;int count=0;

for(int i=0;i

hdu1875kruskal簡單應用。

標記是dificulty 2,水,開始kruskal時練手題,只需開始時資料處理下,不符合要求的邊不要,要理解並查集和kruskal,就簡單了,判斷下是否聯通圖,只需在記加入有效邊時候統計連通分支數即可 生成樹必是n 1條邊,有效加入次數為n 1次,少與之便不連通了,在杭電總能1a。在poj從未1a...

hdu 1875 暢通工程再續 kruskal

最小生成樹的一種求法,關鍵還是判斷兩個點是否在乙個回路上即並查集的運用 include include include includeusing namespace std int num 210 int pre 210 double length struct edge e 9999 void m...

hdu 1875 暢通工程再續

題目 又是最小生成樹。一開始錯了幾次。我以為是當兩段路大於1000或者小於10就會不符合要求。其實是讀錯題意了。當兩段路大於1000或者小於10。只應該把這段路變成死路。下面是ac include includeusing namespace std define n 9999999 int n d...