最大生成樹演算法和最小生成樹演算法幾乎一樣,只需要我們把最小生成樹演算法進行一點點改變即可。
當你用krushal演算法求最小生成樹的時候,每一次選取的邊都是最小的邊,然後再去判斷這條邊是否可以加入最小生成樹;
那麼當你每一次選擇的邊是最大的邊,然後再去判斷這條邊是否可以加入,那麼這就是最大生成樹的求取方法了;
(1)選取最長的邊,邊(3,5);
(2)選取邊(2,4);
(3)選取邊(3,4);
(4)選取邊(4,5),會構成環路,所以不能選取;
(5)選取邊(2,3),會構成環路,所以也不能選取;
(6)選取邊(5,6);
(7)選取邊(4,6),會構成環路,所以也不能選取;
(8)選取邊(1,3);
所以最大生成樹的結果是:13+11+9+4+2=39;
#include#include#includeusing namespace std;
const int n=5000;
struct node//儲存每一條邊
a[n*10];
bool cmp(node aa,node bb)//排序
int n,m,k,t;
int f[n];//儲存每乙個點的父親節點
int getf(int v)//尋找父親節點;
int kruskal()
}if(countt==n)
return ans;
else
return -1;
}int main()
for(int i=0;i<=n;i++)//初始化,自己的父親節點是自己;
f[i]=i;
int kk=kruskal();
printf("%d\n",kk);
return 0;
}
最大生成樹
problem a 古老的羊皮卷 time limit 3 sec memory limit 128 mb description 奇奇,乙個響亮的名字在acm界.如今奇奇已經腰纏萬貫,飛黃騰達,日子過的是無比的滋潤.是什麼使他到了如此的地位?如果你要這麼問,奇奇會不假思索的告訴你 acm 是acm...
最大生成樹
include define pp make pair using namespace std typedef long long ll const int maxn 1e6 30 const int n 260000 const ll mod 1e9 7 const int inf 0x3f3f3...
matlab prime最大生成樹
最近寫了個最大生成樹,根據兩個節點之間的互資訊作為邊的權重來進行編寫。希望能夠有所幫助 思路是先放到set中乙個點,然後找到所有與set相連的邊,按照降序排列,依次選擇判斷是否滿足prime的條件 function maxtree h importdata h.mat mutualinfo impo...