一、題目描述
farmer john 被選為他們鎮的鎮長!他其中乙個競選承諾就是在鎮上建立起網際網路,並連線到所有的農場。當然,他需要你的幫助。
fj 已經給他的農場安排了一條高速的網路線路,他想把這條線路共享給其他農場。為了用最小的消費,他想鋪設最短的光纖去連線所有的農場。
你將得到乙份各農場之間連線費用的列表,你必須找出能連線所有農場並所用光纖最短的方案。每兩個農場間的距離不會超過 10^5。
輸入格式
第一行農場的個數 n(3 ≤n≤100)。
接下來是乙個n×n 的矩陣,表示每個農場之間的距離。理論上,他們是 n 行,每行由 n 個用空格分隔的數組成,實際上,由於每行 80 個字元的限制,因此,某些行會緊接著另一些行。當然,對角線將會是 0,因為不會有線路從第 i 個農場到它本身。
輸出格式
只有乙個輸出,其中包含連線到每個農場的光纖的最小長度
輸入輸出樣例
輸入
40 4 9 21
4 0 8 17
9 8 0 16
21 17 16 0
輸出
28二、題解
#include
#include
# define inf 65535
using
namespace std;
bool vis[20]
=;//標記
int mp[20]
[20];
int min_s=inf;
int count=1;
//count用於計數
int ans,k,n;
//ans城市編號,k固定距離
void
dfs(
int p,
int sum)
//p城市編號,sum距離之和
vis[p]
=true
;//標記
//一樣的深度情況下搜尋不同的分支
for(
int i =
1; i<=n;i++)}
//取消標記
vis[p]
=false;}
intmain()
//從第乙個城市開始搜尋
dfs(1,
0);printf
("%d"
,min_s)
;return0;
}
素數最短距離問題
素數距離問題 時間限制 3000 ms 記憶體限制 65535 kb 難度 2 描述現在給出你一些數,要求你寫出乙個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數,則輸出左側的值及相應距離。如果輸入的整數本身就是素數,則輸出該素數本身,距離輸出0 輸入第一行給出測試資料...
1407 最短距離
兩個點 a b 均在做勻速直線運動。給出 t 0時刻 a b 的座標,以及 a b 的速度,計算t 0時兩個點的距離的最小值。輸入的第一行包含乙個整數 t 1 t 200 表示一共有 t 組測試資料。對於每組測試資料,第一行包含4個整數 x a y a v ax v ay 103 x a y a v...
編輯最短距離
給定兩個字串s和t,對於t我們允許三種操作 1 在任意位置新增任意字元 2 刪除存在的任意字元 3 修改任意字元 問最少操作多少次可以把字串t變成s?例如 s abcf t dbfg 那麼我們可以 1 把d改為a 2 刪掉g 3 加入c 所以答案是3。1 把t中字元全刪了,再新增s的全部字元,操作次...