ACM新手DAY 7 最小生成樹

2021-09-25 10:58:36 字數 1095 閱讀 9564

題目:有n個村莊,編號從1到n,建造一些道路使每兩個村莊可以相互連線。 我們說兩個村a和b是相連的,當且僅當a和b之間有一條道路,或者存在乙個村c以便在a和c之間有一條道路,並且c和b相連。

一些村莊之間已經有一些道路,你的工作就是修建一些道路,使所有村莊都連通起來,所有道路的長度都是最小的。求此時需要修多長的路。

#include

using namespace std;

int f[

200]

;struct edge

e[200

*200];

bool cmp

(edge a,edge b)

intgetf

(int n)

bool merge1

(int u,

int v)

intmain()

;}}int c;

cin>>c;

for(

int i=

0; i}//將每條邊按從小到大的順序排序

sort

(e,e+cnt,cmp)

;//並查集初始化

for(

int i=

1; i<=n; i++

) f[i]

=i;int cc=0;

int sum=0;

for(

int i=

0; i)//cc用來記錄已經選了多少條邊了 如果選的邊數量為n-1條邊

//就選夠了 可以退出 不用選了

if(cc==n-1)

break;}

cout<}}

題目:依舊是權值和最小

for

(int i=

1; i}}

題目:權值和最小,兩個點可不可以連在一起需要判斷,兩個點之間的權值需要計算。

bool sushu

(int n)

return1;

}

2013寒假ACM集訓 最小生成樹

普里姆演算法 稠密圖 克魯斯卡爾演算法 稀疏圖 1.prime 演算法 貪心 集合加點 2.kruskal演算法 並查集 加邊 思想是加 點,在邊比較多的情況下,用prime。思路 先找 任意一點到其他的點的 最短距離,再找 這個點和剛才的點 到其他的點的最短距離,依次重複 最小生成樹 prime模...

最小生成樹 次小生成樹

一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...

最小生成樹

package 圖 最小生成樹是用最少的邊吧把所有的節點連線起來。於是和圖的深度優先搜素差不多。class stack public void push int key public int pop 檢視棧頂的元素 public int peek public boolean isempty cla...