觀光旅遊 Floyed 最小環

2021-10-02 05:46:52 字數 2796 閱讀 9306

time limit:20000ms memory limit:65536k

total submit:292 accepted:144

case time limit:2000ms

description

在桑給巴爾島的ade

lton

adelton

adelto

n城鎮上有乙個旅遊機構。它們決定在提供許多的其它吸引之外,再向客人們提供旅遊本鎮的服務。 為了從提供的吸引服務中盡可能地獲利,這個旅遊機構接收了乙個精明決定:在相同的起點與終點之間找出一最短路線。

input

你的任務是編寫一條程式來找類似的的一條路線。在這個鎮上,有n

nn個十字路口(編號1

11至n

nn),兩個十字路口之間可以有多條道路連線,有m

mm條道路(編號為1

11至m

mm)。但沒有一條道路從乙個十字路口出發又回到同乙個路口。每一條觀光路線都是由一些路組成的,這些道路序號是:y1,

...,

yk

,y1, ..., yk,

y1,...

,yk,

且k

>

2k>2

k>

2。第yi(

1<=i

<=k

−1

)yi(1<=i<=k-1)

yi(1

<=i

<=k

−1)號路是連線第xi號十字路口和第x[i

+1

]x[i+1]

x[i+1]

號十字路口的;其中第ykyk

yk號路是連線第xkxk

xk號十字路口和第x[k

+1

]x[k+1]

x[k+1]

號十字路口。而且所有的這些x1,

...,

xk

x1,...,xk

x1,...

,xk分別代表不同路口的序號。在某一條觀光路線上所有道路的長度的和就是這條觀光路線的總長度。換言之l(y

1)+l

(y2)

+...

+l(y

k)

l(y1)+l(y2)+...+l(yk)

l(y1)+

l(y2

)+..

.+l(

yk)的和, l(y

i)

l(yi)

l(yi

)就是第yiyi

yi號觀光路線的長度。你的程式必須找出類似的一條路線:長度必須最小,或者說明在這個城鎮上不存在這條觀光路線。

output

每組資料的第一行包含兩個正整數:十字路口的個數n(n

<

=100

)n(n<=100)

n(n<=1

00),另乙個是道路的 數目m(m

<

10000

)m(m<10000)

m(m<10

000)

。接下來的每一行描述一條路:每一行有三個正整數:這條路連線的兩個路口的編號,以及這條路的長度(小於500

50050

0的正整數)。

sample input

每一行輸出都是乙個答案。如果這條觀光路線是不存在的話就顯示「no

solu

tion

」「no solution」

「nosol

utio

n」;或者輸出這條最短路線的長度。

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

-1樣例1

61樣例2

no solution

最小環:就是指在一張圖中找出乙個環,使得這個環上的各條邊的權值之和最小。在floyed的同時,可以順便算出最小環。

floyed:演算法請見 floyed-warshall.

#include

#include

#include

#include

#include

using namespace std;

const int inf

=10000000

;int n,m,f[

500]

[500

],ans=

inf,dis[

100]

[100];

int main()

ans=

inf;

for(int k=

1;k<=n;k++

)//乙個環中的最大結點為k(編號最大),與它相連的兩個點為i,j,這個環的最短長度為f[i][k]+f[k][j]+(i到j的路徑中,所有結點編號都小於k的最短路徑長度)。

for(int i=

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

if(ans==

inf)

cout<<

"no solution"

;else

cout<}

觀光旅遊(最小環問題)

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

vijosP1046 觀光旅遊(最小環)

vijosp1046 觀光旅遊 思路 floyd求解最小環。1 include2 using namespace std 34 const int maxn 100 10 5 const int inf 1e8 6int f maxn maxn dist maxn maxn 7int n,m,min...

SSL1763 觀光旅遊 最小環問題

在相同的起點與終點之間找出一最短路線。你的任務是編寫一條程式來找類似的的一條路線。在這個鎮上,有n個十字路口 編號1至n 兩個十字路口之間可以有多條道路連線,有m條道路 編號為1至m 但沒有一條道路從乙個十字路口出發又回到同乙個路口。每一條觀光路線都是由一些路組成的,這些道路序號是 y1,yk,且k...