AOJ2224(最小(大)生成樹)

2022-05-01 18:03:10 字數 1041 閱讀 1161

題目描述:

有很多貓被困在乙個圖中,這些圖由若干點組成,然後給了若干連線,把這個圖分為了幾個區域,請你求出把這個圖消去若干條邊,最後使這個圖沒有封閉區域,請問最小的花費是多少(花費等於邊長總和)

思路:一開始並沒有頭緒,後來發現把乙個圖變成乙個沒有封閉區域的圖的最小花費=圖的總權值-最大生成樹的花費

然後就交了一發mst就過了

**:

1 #include2 #include3 #include 4 #include 5

using

namespace

std;

6const

int maxn=1e4+5;7

const

int maxm=1e8+5;8

intm,n,par[maxn],cnt;

9struct

edge

10e[maxm];

14struct

node

15poi[maxn];

18bool

cmp(edge a,edge b)

1922

double

len(node a,node b)

2327

void add(int a,int b,double

c)28

33int find(int

x)34

44return

r;45}46

void unio(int x,int

y)47

51double

kruskal()

5264}65

return

ans;66}

67int

main()

6877

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

7885

double ans=sum-kruskal();

86 printf("

%.3lf\n

",ans );

87 }

view code

最小生成樹

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

最小生成樹

define max vertex num 20 最大頂點數 typedef int adjmatrix max vertex num max vertex num 鄰接矩陣型別 typedef char vertextype typedef struct mgraph struct dnodecl...

最小生成樹

在乙個具有幾個頂點的連通圖g中,如果存在子圖g 包含g中所有頂點和一部分邊,且不形成迴路,則稱g 為圖g的生成樹,代價最小生成樹則稱為最小生成樹。最小生成樹的特點 1 mst性質 最小生成樹性質 設g v,e 是乙個連通網路,u是頂點集v的乙個真子集。若 u,v 是g中一條 乙個端點在u中 例如 u...