演算法競賽入門經典 Dynamic Programming,dynamicprogramming

來源:互聯網
上載者:User

演算法競賽入門經典 Dynamic Programming,dynamicprogramming

111 - History Grading LCA

103 - Stacking Boxes DAG最長路

10405 - Longest Common Subsequence LCA

674 - Coin Change 完全背包求方案數 

UVA 116 簡單遞推 輸出字典序最小解 從後往前推

10130 - SuperSale 01背包

531 - Compromise LCA

10465 - Homer Simpson 完全背包

10285 - Longest Run on a Snowboard 滑雪 經典記憶化搜尋

437 - The Tower of Babylon 最長上升序列 LIS

10404 - Bachet's Game 完全背包

?620 - Cellular Structure

825 - Walking on the Safe Side 直接左上到右下

 

 

 


ACM動態規劃問題(演算法競賽入門經典)

遞迴就不說了,明顯是需要棧的邏輯結構維護的。簡單說說對遞推和DP的個人見解,只供參考。

DP=狀態+狀態轉移方程
狀態的關鍵特點是無後效性,簡單地舉例:奧運會某項目淘汰賽1/N決賽,成績只跟以後的比賽有關,之前的成績不帶入(只考慮賽制)。如果你發現一個狀態後面階段決策需要用到前面階段的狀態資訊,那麼這就不是一個標準的DP。比如:
A - B1 - C1 - D
\-- EX ------/
如果將EX歸為B段或C段,那麼EX-D或者A-EX就跨越了跳躍了一個階段,對於這個階段來說他後面的階段就用到了前面階段的狀態資訊
當然這並不意味著不能採用DP演算法,對於上面的例子,可以將EX本身拆為B2 - C2就可以滿足DP條件了,對於連續狀態的DP,類似的調整更多。

狀態轉移方程是狀態到狀態的決策
簡單地說,就是貪心的那一部分,多條路你選擇一條路的過程

很多時候,遞推和DP難以區分,一般情況,狀態轉移決策明顯是“選擇”的時候,會當做DP,而如果計算比重較大,會當做遞推;狀態調整比較多時,可能認為是遞推;連續狀態可以歸為DP。
例:M*N的的帶權格子,從左上走到右下,每次只能向右或下移動一格,求權值加和最大(小)的路徑條數。

還有一個相關詞叫做“遞推規劃”,有興趣的話可以自己看下相關資料

解釋之後答案很明顯:DP要有狀態轉移方程。甚至可以說DP的關鍵就是狀態轉移方程。
你的第一個問題,希望你把書名報一下,我貌似沒有白皮的
 
演算法競賽入門經典怎

從書本的編排上,就可以看出作者的確是用心在寫書。比如講,動態規劃一章,在介紹各種動態規劃基本問題時,我目前見過的所有演算法書都只給出最優值的那個值,而沒有考慮到競賽或其它需要時,對答案構造的需要。比如,如果一個題目真要你輸出字典序列最小的方案,可能會難倒很多人。而真正靠初學者自己要來領悟這樣一些方法,確實是需要不少時間的。諸如此類的用心書中還有很多,作者一個個演算法娓娓道來,卻又在初學者容易犯錯的地方給一些提示,感覺很好。 更難能可貴的是,作者作為ICPC WORLD FINAL銀牌得主,資訊學國家隊教練,絲毫沒有架子,不會像高數、數分書上那麼多“顯然”、“很容易看出”之類直接來一個例子。但是,這並不說明行筆羅嗦,相反,更體現作者心思細膩,真去PKU做兩個題目就會發現,很多時候演算法正確是一方面,細節上不出錯又是一個方面,把"=="打成"="然後調一個多小時代碼,絕對是初學語言的時候常犯的錯誤。 但是,整本書沒有任何參考書目附於附錄,一來是對被參考書籍的作者的不尊重,二來不利於讀者進一步閱讀(比如動態規劃一章之後的習題推薦,基本全部來自於《programming challenge》一書的習題)。 總起來說,本書絕對值得一讀,即使是有演算法基礎的ACMER||OIer 期待後續兩本著作問世
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.