SSL1763 觀光旅遊 最小環問題

2021-10-02 05:46:52 字數 1311 閱讀 3735

在相同的起點與終點之間找出一最短路線。

你的任務是編寫一條程式來找類似的的一條路線。在這個鎮上,有n個十字路口(編號1至n),兩個十字路口之間可以有多條道路連線,有m條道路(編號為1至m)。但沒有一條道路從乙個十字路口出發又回到同乙個路口。每一條觀光路線都是由一些路組成的,這些道路序號是:y1, …, yk,且k>2。第yi(1<=i<=k-1)號路是連線第xi號十字路口和第x[i+1]號十字路口的;其中第yk號路是連線第xk號十字路口和第x[k+1]號十字路口。而且所有的這些x1,…,xk分別代表不同路口的序號。在某一條觀光路線上所有道路的長度的和就是這條觀光路線的總長度。換言之l(y1)+l(y2)+…+l(yk)的和, l(yi)就是第yi號觀光路線的長度。你的程式必須找出類似的一條路線:長度必須最小,或者說明在這個城鎮上不存在這條觀光路線。

每組資料的第一行包含兩個正整數:十字路口的個數n(n<=100),另乙個是道路的 數目m(m<10000)。接下來的每一行描述一條路:每一行有三個正整數:這條路連線的兩個路口的編號,以及這條路的長度(小於500的正整數)。

每一行輸出都是乙個答案。如果這條觀光路線是不存在的話就顯示「no solution」;或者輸出這條最短路線的長度。

sample output

樣例15 7

1 4 1

1 3 300

3 1 10

1 2 16

2 3 100

2 5 15

5 3 20

樣例24 3

1 2 10

1 3 20

1 4 30

樣例161

樣例2no solution

這是一道最小環模板題。它基於floyed。

我用了兩個鄰接矩陣記錄,中間判斷最小環。floyed!

#include

#include

using

namespace std;

int n,m,x,y,c,ans=

0x3fffff

,a[105][

105]

,g[105][

105]

;int

main()

for(

int k=

1;k<=n;k++)}

for(

int i=

1;i<=n;i++)}

}if(ans<

0x3fffff

&&ans[0

]) cout

"no solution"

;return0;

}

觀光旅遊(最小環問題)

在桑給巴爾島的adelton城鎮上有乙個旅遊機構。它們決定在提供許多的其它吸引之外,再向客人們提供旅遊本鎮的服務。為了從提供的吸引服務中盡可能地獲利,這個旅遊機構接收了乙個精明決定 在相同的起點與終點之間找出一最短路線。你的任務是編寫一條程式來找類似的的一條路線。在這個鎮上,有n個十字路口 編號1至...

觀光旅遊 Floyed 最小環

time limit 20000ms memory limit 65536k total submit 292 accepted 144 case time limit 2000ms description 在桑給巴爾島的ade lton adelton adelto n城鎮上有乙個旅遊機構。它們決...

SSL ZYC 1763 觀光旅遊

題目大意 求乙個圖的最小環。思路二 用dij,列舉每條邊,將該邊刪除,再求該邊的兩個端點之間的最短路,最短路再加上這條邊,就是乙個環。include include using namespace std const int maxn 99999999 int a 101 101 n,m,b 101...