john的農場
description
john是乙個農場主,他有幾個牧場,為了好好照顧他的牛,他必須在幾個牧場之間來回,可糟糕的天氣往往使得道路非常泥濘,為此john準備在牧場之間鋪一些石子路,這樣在下雨天也能快速地從乙個牧場到另外乙個牧場。但john的資金有限,為了自己能從任乙個牧場都通過石子路到達另外乙個牧場,他需要好好設計一下線路。請幫助john設計好線路,使得john能從任乙個牧場都通過石子路到達另外乙個牧場,且線路的費用最低。
輸入:
第一行是乙個整數k,表示有多少個測試用例,以後每個測試用例佔n+1行。每個測試用例的第一行為乙個整數n(3<=n<=20),表示有多少個牧場,從第二行開始為乙個n*n的矩陣,矩陣元素aij表示從i個牧場到j個牧場的鋪路費用。
輸出:每行輸出乙個測試用例的最小鋪路費用。
sample input 26
0 6 1 5 0 0
6 0 5 0 3 0
1 5 0 5 6 4
5 0 5 0 0 2
0 3 6 0 0 6
0 0 4 2 6 0
40 1 2 3
1 0 3 4
2 3 0 1
3 4 1 0
sample output
154
#include
using namespace std;
#define infinity 65535
bool flag[21];
int cost[21][21],lowcost[21],mincost;
int main()
else lowcost[i]=infinity;}}
flag[0]=true;
i=0;
int key;
int min;
while(ilowcost[j])
}flag[key] = true;
mincost+=lowcost[key];
for(j=1;j
ACM John的農場(最小生成樹) C 實現
john的農場 description john是乙個農場主,他有幾個牧場,為了好好照顧他的牛,他必須在幾個牧場之間來回,可糟糕的天氣往往使得道路非常泥濘,為此john準備在牧場之間鋪一些石子路,這樣在下雨天也能快速地從乙個牧場到另外乙個牧場。但john的資金有限,為了自己能從任乙個牧場都通過石子路...
ACM John的農場(最小生成樹) C 實現
john的農場 description john是乙個農場主,他有幾個牧場,為了好好照顧他的牛,他必須在幾個牧場之間來回,可糟糕的天氣往往使得道路非常泥濘,為此john準備在牧場之間鋪一些石子路,這樣在下雨天也能快速地從乙個牧場到另外乙個牧場。但john的資金有限,為了自己能從任乙個牧場都通過石子路...
最小生成樹 次小生成樹
一 最小生成樹 說到生成樹首先要解釋一下樹,樹是乙個聯通的無向無環圖,多棵樹的集合則被稱為森林。因此,樹具有許多性質 1.兩點之間的路徑是唯一的。2.邊數等於點數減一。3.連線任意兩點都會生成乙個環。對於乙個無向聯通圖g的子圖,如果它包含g的所有點,則它被稱為g的生成樹,而各邊權和最小的生成樹則被稱...