題目描述:
有很多貓被困在乙個圖中,這些圖由若干點組成,然後給了若干連線,把這個圖分為了幾個區域,請你求出把這個圖消去若干條邊,最後使這個圖沒有封閉區域,請問最小的花費是多少(花費等於邊長總和)
思路:一開始並沒有頭緒,後來發現把乙個圖變成乙個沒有封閉區域的圖的最小花費=圖的總權值-最大生成樹的花費
然後就交了一發mst就過了
**:
1 #include2 #include3 #include 4 #include 5view codeusing
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 }
最小生成樹
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...