最小生成樹之最大生成樹

2021-09-26 11:15:23 字數 735 閱讀 7276

題目:poj 3723 conscription

題意:要徵兵n個男兵和m個女兵,每個花費10000元,但是如果已經徵募的男士兵中有和將要徵募的女士兵關係好的,那麼可以減少花費,給出關係,求最小花費。

分析:這個題目初始乙個是個二分圖,以為可以從這裡入手,但是這個題目這個性質沒用。

初始花費沒人10000,那麼減去其中有關係的就是當前的花費。

要是花費最少,那麼減去的最大即可,又因為沒人只徵募一次,即最多選擇乙個,所以減去乙個最大生成樹就ok

ac**:

#include

#include #include #include#include using namespace std;

const int n = 52000;

const int m = 55000;

int u[n],v[n],w[n];

int cmp(int x,int y) //比較

int father[n],p[n];

int find(int x) //查詢根

int kru(int n, int m) //kruscal

}return ans;

}int main()

int css = kru(m+n,r);

printf("%d\n",(n+m)*10000-css);

}return 0;

}

演算法之最小生成樹

1.問題描述 利用貪心演算法設計策略構造乙個無向連通帶權圖的最小生成樹。最小生成樹 設g v,e 是無向連通帶權圖,即乙個網路。e中每條邊 v,w 的權為 c v w 包含g 所有頂點的樹且該生成樹各邊權的總和最小 即耗費最小 則稱該生成樹為 g的最小生成樹。設g v,e 是無向連通帶權圖,頂點集v...

最小生成樹和最大生成樹

生成樹 spanning tree 乙個連通無向圖的生成子圖,同時要求是樹。也即在圖的邊集中選擇n 1條,將所有頂點連通。最小生成樹為乙個有 n 個結點的連通圖的生成樹是原圖的極小連通子圖,且包含原圖中的所有 n 個結點,並且有保持圖連通的最少的邊。最小生成樹可以用kruskal 克魯斯卡爾 演算法...

最小生成樹 次小生成樹

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