导游的魔棒
Description
小C“五一”節參加了五星旅行社組織的一次外出旅游,這次旅游中,小C遇到一件非常有趣的事: 五星旅行社的導游小張有一根魔棒,這根魔棒在每一次的旅游中可以產生一次魔力(也只能產生一次魔力),這魔力可以使兩個景點間的距離減成原來的一半。小C在“五一”節的這次旅游中,很有幸是小張導游作為他們的導游,小張當然也沒有忘記帶他的魔棒,因為他可以發揮魔棒的作用,使路程減少呢。這次旅游中,去了一個有N個景點的旅游區,這個旅游區只有一個入口,在景點編號為1的地方,一個出口,在景點編號為N的地方,景點編號為1,2,3,…,N。在入口處有一個N×N的數據陣,描述了景點間的距離,a[I,j]表示景點i到景點j的距離。因為小C的公司有急事要小C盡快回來,現在小C要用張導游的魔棒,使得從入口到出口的距離最短。現在我們也來編一個程序:求將哪一條邊減半后使從頂點1到頂點N的最短路徑長度最短,輸出這個最短距離,如果找不到從1到N的路徑,則輸出 -1 。
Input
從文件中c.in讀入數據,文件第一行是一個正整數N(3 ≤ N ≤ 50),表示共有N個點,接下來是一個N行N列的數據陣,a[I,j]的值表示頂點i到頂點j的長度。
Output
只有一個數就是將一條邊長減半后的從1到N的最短路徑長度,結果四舍五入到小數后兩位,如果找不到從1到N的路徑,則輸出 -1 。
Sample Input
3
0 5 20
5 0 8
20 8 0
Sample Output
9.00
.
.
.
.
.
分析
a[i][j][0/1]表示i走到j 沒用/用了 將邊減半的最短距離
然后floyd
.
.
.
.
.
程序:
轉載于:https://www.cnblogs.com/YYC-0304/p/11094914.html
總結