SDUT 離散數學 4178 最小生成樹

2021-09-24 14:39:49 字數 1176 閱讀 7983

time limit: 1000 ms memory limit: 65536 kib

submit

statistic

problem description

在乙個無向圖中,求最小生成樹。

input

多組測試資料,對於每組測試資料,第1行輸入正整數n(1 <= n <= 1000)、m,表示n個頂點(編號從1開始)和m條邊。之後m行每行輸入u(1 <= u <= n)、v(1 <= v <= n)、w(1 <= w <= 100),表示在頂點u和頂點v之間存在無向邊,且權值為w。

output

對於每組測試資料,若存在最小生成樹則輸出最小生成樹的權值和,若不存在最小生成樹則輸出-1。

sample input

3 7

1 2 19

2 3 11

3 1 7

1 3 5

2 3 89

3 1 91

1 2 32

sample output

16
hint

source

xry-fhf

#include using namespace std;

struct node a[102400];

bool cmp(node a, node b)

/*下面兩個函式是並查集*/

int find_root(int x)

return find_root(a[x].parent);

}void union_set(int u, int v)

int main()

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

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

int ans = 0; // 記錄最小的權值和

int cnt = 0; // 記錄邊的個數

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

}// n個點 n-1條邊 否則不能構成最小生成樹

if (cnt == n - 1)

cout << ans << endl;

else

cout << "-1" << endl;

}}

離散數學 習題篇 最小生成樹

計算帶權無向連通圖g的最小生成樹。第一行兩個整數 n 1 n 300000 表示結點集 表示邊的條數。接下來m行,每行表示一條帶權的邊,用3個整數u,v,c表示,分別表示一條邊的兩個端點以及其權值 權值範圍0 c 109 乙個整數,表示g的最小生成樹的邊權之和。5 10 1 2 3 1 3 7 1 ...

離散數學 筆記

1.復合命題的真值只取決於各原子命題的真值,而與它們的內容 含義無關,與原子命題之間是否有關係無關。2.命題公式 1 重言式 2 矛盾式 3 可滿足式 1.重言式 給定一命題公式,若無論對分量作怎樣的指派,其對應的真值永為真,則稱該命題為重言式或永真式 2.給定一命題公式,若無論對分量作怎樣的指派,...

《離散數學》關係

為什麼要研究乙個關係的演算法?我總是在想這個 難道是現實世界關係的模型對於我們來說,都是數學中研究的關係 關係把世界連線為了乙個巨大的網 一,關係的定義以及性質 從數學的角度來說,關係是笛卡兒的子集,就是乙個二維表,還可以是乙個矩陣,乙個有向圖。關係有一些性質,自反 a,b有相同的父母 對稱 a,b...