標記是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...