最小生成樹 案例6 1 7 公路村村通

2021-10-19 10:06:41 字數 757 閱讀 9332

題目鏈結

思路:最小生成樹問題,我們直接利用kruskal演算法。即將所有邊按照權重從小到大排列,每次挑選其中權重最小的邊生成樹,並且每次挑選時要篩去選擇該邊會形成迴路的邊,利用並查集即可,若在並查集中兩點同根,即兩點連通,則選擇連線兩點的邊會形成迴路.

#include

#include

#include

#include

using

namespace std;

const

int max =

3e3;

struct edge

edge()

;}e[max]

;int n, m,root[max]

,sum;

bool

cmp(edge a, edge b)

intfind_root

(int x)

void

union_root

(int a,

int b)

else}}

void

kruskal()

}int

main()

kruskal()

;if(root[

find_root(1

)]==-n)

printf

("%d"

, sum)

;else

printf

("-1");

}

PTA 公路村村通 最小生成樹

現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入資料報括城鎮數目正整數n n le 1000 1 000 和候選道路數目m m le 3n 3 n 隨後的m m行對應m m條道路,每行給出3個正整數,分別是該條道路直接連通的兩...

7 3 公路村村通(最小生成樹K演算法)

7 3 公路村村通 30 分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入格式 輸入資料報括城鎮數目正整數n 1000 和候選道路數目m 3n 隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的...

公路村村通 30分 最小生成樹

公路村村通 30分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入資料報括城鎮數目正整數n n le 1000 1 000 和候選道路數目m m le 3n 3 n 隨後的m m行對應m m條道路,每行給出3個正整數,分別是...