《新唐書》記載,楊貴妃嗜荔枝,必欲生致之,乃置騎傳送,走數千裏,味未變,已至京師。程序員
此時已經是二更天,我仍無意睡眠。code
今日皇帝剛剛下旨,命令咱們這些差管將剛剛成熟的荔枝送往京城,必須新鮮,不然就地問斬。程序
可蜀中到長安數千裏,途徑數十城市,如何尋得最短路徑,將新鮮荔枝送入皇宮呢?方法
夜不能寐,便掌了一盞燈,坐在書房苦思。im
夫人聽見了動靜,來到我旁邊,看我長吁短嘆,便寬慰到:"相公,事到如此也無甚好辦法。皇命不可違,咱們只能走一步看一步吧。"地圖
我聽了,無奈搖搖頭,喃喃到:"若找不到最短路徑,咱們就是日夜奔馳,馬不停蹄,也沒法完成皇命啊,怎麼能說走一步看一步,走一步看一步。。。"img
這時,我忽然想到了什麼,拿出紙和筆,推算了一遍,我彷佛找到了破解之法。di
夫人湊近問道:"相公但是尋得什麼法子?"loading
我笑到:"仍是夫人提醒了我啊,這個法子就是 走一步看一步!"co
"哦,這是何意?"
我在紙上畫到
"夫人請看,咱們能夠畫個簡略的從蜀中到長安的地圖。
如圖所示,當前咱們身處蜀中,從蜀中到長安有可能途經任何一個城市。
但從從蜀中來看,咱們可去的城市只有佳城
宜城
二城,距離分別是4
和5
。
即
按照夫人所言,走一步
,那咱們就去離蜀中最近的城市,即佳城
。
假設咱們已經到了佳城
,環城四顧,也就是看一步
,發現尚未去過而且相鄰的城市有 宜城
,冰城
。
咱們分別梳理一下
當咱們在蜀中
的時候,記錄下來蜀中
宜城
的最近距離是5,途經 蜀中->宜城。
如今發現從佳城
也能夠到宜城
,可是距離是蜀中
與佳城
的最近距離加佳城
宜城
之間的距離,即4+4=8
,剛纔是5
,如今是8
,因此蜀中
到宜城
的最短距離和路徑不變。
咱們以前尚未記錄過冰城
的相關信息,因此直接記下蜀中
到冰城
的途徑爲 蜀中 ->佳城->冰城,距離爲蜀中
與佳城
的最近距離加佳城
與冰城
的距離,即4+5=9
。
紅色表明已去過城市
而後,咱們再走一步看一步
。
此時,咱們再挑一個咱們沒有去過而且距離蜀中
最近的城市,上圖所示,這次咱們要去宜城
。
到達宜城
以後,咱們又看一步
,發現宜城
相鄰的而且沒有去過的城市只有鼎城
。
那比較簡單,直接記錄下蜀中
到鼎城
的最近距離和路徑。
好的,到了這一步夫人可知如何進行下一步嗎?"
"我知道啊,天然仍是 走一步
,能夠當前冰城
和鼎城
距離都是9
,咱們該去哪座城市呢?"
"好問題,既然距離同樣,那咱們隨機去哪個都行。讓我想一下,夫人冰雪聰明,那咱們就去冰城
吧"。
夫人嬌嗔到:"相公又拿我打岔,咱們先幹正事吧!"
我笑到:"來,咱們接着走。此時咱們到了冰城
,又 看一步
,即發現冰城
相鄰的而且沒有去過的城市只有子城
。
因此以下圖所示
此時咱們再次選擇距離蜀中
最近而且沒有去過的城市,爲鼎城
。
到達鼎城
以後,相鄰的而且沒有去過的城市只有長安
,也就是咱們的最終目的地。
夫人嘆道:"真不容易啊,咱們終於到了長安
了!"
我:"慢,從路徑圖中咱們看到子城
咱們尚未去,並且從這個城市到長安
的路徑可能更近。咱們來看。
此次咱們距離蜀中
最近而且沒有去過的城市,即子城
,到達子城
以後,發現相鄰的而且沒有去過的城市只有長安
,而且計算出來從子城
到長安
的距離爲12+2=14
,小於從鼎城
到長安
的距離16
,因此須要更新長安
的最短距離爲14
,並記下
走到此時,咱們還按照以前方法走的話,發現距離蜀中
最近而且沒有去的城市只有長安
了。等到了長安
,發現已無剩餘城市可去。
此時,咱們的結果也呼之欲出。"
夫人在旁邊開心的跳了起來,我也長嘆了一口氣,實際狀況雖比圖中描述複雜不少,但最起碼有了路子能夠尋到最短路徑了。
此時東方既白,雞鳴響起,我推開門,朝陽如鮮花綻開,如水波四散。
我站在院裏,望向遠方,好像看見了長安。
創過業,賠過錢。遂轉行,程序員。
從外包,到大廠。寫代碼,寫文章。
胡思亂想,文章沙雕。
歡迎關注,與君同好。