解決農場最短距離問題

2021-10-06 14:47:50 字數 1259 閱讀 5804

一、題目描述

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的全部字元,操作次...