cogs P1578 模板 次小生成樹初級練習題

2022-04-07 06:37:04 字數 1102 閱讀 4242

☆   輸入檔案:mst2.in輸出檔案:mst2.out簡單對比

時間限制:1 s   記憶體限制:256 mb

求嚴格次小生成樹

第一行包含兩個整數n 和m,表示無向圖的點數與邊數。 接下來 m行,每行 3個數x y z 表示,點 x 和點y之間有一條邊,邊的權值為z。

包含一行,僅乙個數,表示嚴格次小生成樹的邊權和。(資料保證必定存在嚴格次小生成樹)

5 61 2 1

1 3 2

2 4 3

3 5 4

3 4 3

4 5 6

11

資料中無向圖無自環; 50% 的資料n≤2 000 m≤3 000; 80% 的資料n≤50 000 m≤100 000; 100% 的資料n≤100 000 m≤300 000 ,邊權值非負且不超過 10^9 。

bzoj。。。

#include#include

#include

#include

using

namespace

std;

struct

nondedge[

400000

];int t,n,m,x,y,z,fa[200000],num,ans[200000

];int tot,bns,k,answer=0x7f7f7f7f

;int

cmp(nond aa,nond bb)

int find(int

x)int

main()

sort(edge+1,edge+1+m,cmp);

for(int i=1;i<=n;i++) fa[i]=i;

for(int i=1;i<=m;i++)

if(tot==n-1) break

; }

for(int i=1;i<=tot;i++)

if(num==n-1) break

; }

if(num==n-1&&k!=bns) answer=min(k,answer);

}cout

<}

次小生成樹模板

kruskal演算法 關於次小生成樹,首先求出最小生成樹,然後列舉每條不在最小生成樹上的邊 在原本的節點上新增乙個vis屬性進行判斷即可 並把這條邊放到最小生成樹上面,然後就一定會形成環,那麼我們在這條環路中取出一條 除了新加入的那一條邊 最長的路 這裡可以用d u v 來維護 最終得到的權值就是次...

最小生成樹 次小生成樹 模板

次小生成樹我的理解 在最小生成樹的基礎上,列舉不再最小生陳樹上的邊,然後成環,取出一條除了新加入的那條邊外的最長邊,最終的權值即為次小生成樹的權值。小結論 當次小生成樹的權值與最小生成樹的權值相同時,最小生成樹不唯一。include include include includeusing name...

COGS 1578 次小生成樹初級練習題

輸入檔案 mst2.in輸出檔案 mst2.out簡單對比 時間限制 1 s 記憶體限制 256 mb 求嚴格次小生成樹 第一行包含兩個整數n 和m,表示無向圖的點數與邊數。接下來 m行,每行 3個數x y z 表示,點 x 和點y之間有一條邊,邊的權值為z。包含一行,僅乙個數,表示嚴格次小生成樹的...