總時間限制: 1000ms 記憶體限制: 65536kb
描述
「我是要成為海賊王的男人!」,路飛一邊喊著這樣的口號,一邊和他的夥伴們一起踏上了偉大航路的艱險歷程。
路飛他們偉大航路行程的起點是羅格鎮,終點是拉夫德魯(那裡藏匿著「唯一的大秘寶」——one piece)。而航程中間,則是各式各樣的島嶼。
因為偉大航路上的氣候十分異常,所以來往任意兩個島嶼之間的時間差別很大,從a島到b島可能需要1天,而從b島到a島則可能需要1年。當然,任意兩個島之間的航行時間雖然差別很大,但都是已知的。
現在假設路飛一行從羅格鎮(起點)出發,遍歷偉大航路中間所有的島嶼(但是已經經過的島嶼不能再次經過),最後到達拉夫德魯(終點)。假設他們在島上不作任何的停留,請問,他們最少需要花費多少時間才能到達終點?
輸入
輸入資料報含多行。
第一行包含乙個整數n(2 < n ≤ 16),代表偉大航路上一共有n個島嶼(包含起點的羅格鎮和終點的拉夫德魯)。其中,起點的編號為1,終點的編號為n。
之後的n行每一行包含n個整數,其中,第i(1 ≤ i ≤ n)行的第j(1 ≤ j ≤ n)個整數代表從第i個島嶼出發到第j個島嶼需要的時間t(0 < t < 10000)。第i行第i個整數為0。
輸出
輸出為乙個整數,代表路飛一行從起點遍歷所有中間島嶼(不重複)之後到達終點所需要的最少的時間。
樣例輸入
樣例輸入1:
4 0 10 20 999
5 0 90 30
99 50 0 10
999 1 2 0
樣例輸入2:
5 0 18 13 98 8
89 0 45 78 43
22 38 0 96 12
68 19 29 0 52
95 83 21 24 0
樣例輸出
樣例輸出1:
100樣例輸出2:
137從初始狀態到當前狀態的代價已經不小於目前找到的最優解,則剪枝
**一下從當前狀態到解的狀態至少要花的代價w(可以很粗略很樂觀,小於真實的最小代價),如果w加上到達當前狀態時已經花費的代價,必然不小於目前找到的最優解,則剪枝
如果到達某個狀態a時,發現前面曾經也到達過a,且前面那次到達a所花代價更少,則剪枝。這要求記錄到目前為止到達狀態a時所能取得的最小代價。· ·
狀態,由兩部分構成:
1)已經走過的城市(除最後乙個城市外,其他城市順序不重要)
2)走過的最後乙個城市 · ·
假設還有 c1,c2….n 這k個城市還沒有走到,則接下來一定要走k段兩個城市間的道路,且這k段路終點分別是c1,c2 … n
取終點為c1的路中最短的那條,再取終點為c2的路中最短的那條 …. 取終點為n的路中最短的那條。它們的長度之和,一定不大於把這k個城市都走到的最短路徑的長度。 · ·
除解狀態以外的狀態總數上限:14*2^14
可以用乙個的14*214二維陣列存放到達某個狀態的「目前為止最小代價」 · ·
從初始狀態到當前狀態的代價已經不小於目前找到的最優解,則剪枝
**一下從當前狀態到解的狀態至少要花的代價w,如果w加上到達當前狀態時已經花費的代價,必然不小於目前找到的最優解,則剪枝
如果到達某個狀態a時,發現前面曾經也到達過a,且前面那次到達a所花代價更少,則剪枝。這要求記錄到目前為止到達狀態a時所能取得的最小代價。
codevs 2144 砝碼稱重 2(搜尋 剪枝)
codevs 2144 砝碼稱重 2 題目描述 description 有n個砝碼,現在要稱乙個質量為m的物體,請問最少需要挑出幾個砝碼來稱?注意乙個砝碼最多只能挑一次 輸入描述 input description 第一行兩個整數n和m,接下來n行每行乙個整數表示每個砝碼的重量。輸出描述 outpu...
估值70億的美團,O2O賭局勝算幾成?
原文 美團網又融了7億美刀這麼一大筆錢,ceo王興短時間內不會為錢發愁了,但筆者認為,7億美元投資這肯定是與投資人對賭的乙個局,對美團來說,是乙個勝算未知的o2o賭局。美團網 又融了7億美刀這麼一大筆錢,ceo王興短時間內不會為錢發愁了,但筆者認為,7億美元投資這肯定是與投資人對賭的乙個局,對美團來...
估值 難點 解決方案及相關案例 原書第2版
估值 難點 解決方案及相關案例 原書第2版 基本資訊 原書名 the dark side of valuation valuing young,distressed,and complex businesses,2nd edition 譯者 李必龍 李羿 郭海 出版社 機械工業出版社 isbn 97...