a416. 6. 城市馬拉松
標籤 :
通過比率 : 73人/85人 ( 86% ) [非即時]
評分方式:
Tolerant

最近更新 : 2012-02-13 16:43

內容
        H城市舉辦馬拉松比賽。比賽區域有 N個補給站,2N1000。為了方便說明,我們將N個補給站名稱以正整數1,2,…,N來表示。 N個補給站有街道來連接,使得選手可從任一個補給站出發,經由幾條街道抵達另一個補給站。我們可以用圖形來表示這些補給站跟街道之間的關係:節點表示補給站,而連接節點的連結線則代表連接兩個補給站之間的街道(如圖一所示,其中補給站名稱以圓圈內的數字來表示,而街道上的數字則代表跑完此街道所需花費的時間)。我們以符號(I,J)來表示連接補給站I和補給站J的街道(連結線)。每一條街道 (I,J)都結合一個整數的權重值c(I,J)來代表跑完(I,J)這條街道所要花費的時間,其中c(I,J)需滿足 1c(I,J)999。令 Nodd 代表那些與奇數條街道相接的補給站個數,則H城市有一個重要特性:Nodd 為偶數且 0 Nodd 20。
   

给定一個起點補給站S和終點補給站T (S≠T),請寫一個程式計算選手從起始補給站S出發,把每條街道都跑過至少一次且到達終點補給站 T所需花費的最短時間。注意:這個城市中所有的街道都是雙向道,同一個補給站和街道可被重複經過。

                                       圖一
在圖一的例子中,Nodd =0,S=1,T=6。圖二說明其中一種跑法為:S=1→3

→2→1→2→4→3→5→2→4→5→6→4→6=T,可在 15單位時間從起點出發,將所有街道都跑過至少一次,且到達終點。然而此種跑法所需的時間並非最短。事實上,此例中花費時間為最短的跑法如圖三所示,為 1→2→3→1→3→4→2→5

→3→5→4→6→5→6,所花費時間為 14單位。
                                                                             圖二
輸入說明
    第一行有四個數字,連續兩個數字之間以空白符號做區隔。第一個數字 N (2≤N≤1000)代表圖形的節點個數;第二個數字 M (1≤M≤N(N-1)/2) 代表圖形的連結線個數;第三個數字則代表起點名稱;第四個數字則代表終點名稱。從第二行起連續有 M行,表示 M條連結線,每行有三個數字,連續兩個數字之間以空白符號做區隔:前二個數字代表連結線的兩個端點,第三個數字代表連結線的權重值。輸入保證任兩個補給站之間都有路徑相連,Nodd為偶數且 0 ≤Nodd≤20。
輸出說明
輸出一個整數,代表選手所花費的最短時間。
範例輸入 #1
輸入範例1:
6 10 1 6
1 2 1
1 3 1
2 3 1
2 4 2
2 5 1
3 4 1
3 5 1
4 5 1
4 6 1
5 6 1

輸入範例2:
3 3 1 2
1 2 4
1 3 6
2 3 5
範例輸出 #1
輸出範例1:
14

輸出範例2:
19
測資資訊:
記憶體限制: 512 MB
提示 :
標籤:
出處:
100學年度全國資訊學科能力競賽 [管理者: stanley17112 ... (Stanley) ]

本題狀況 本題討論 排行

編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」