動態規劃為什麼這麼難?多做題對熟練掌握動態規劃有用嗎?

時間 2021-05-30 04:08:54

1樓:冒泡

只看理論的話不難理解

如何理解動態規劃?

但是如果你是想ACM刷題,那還是比較難的,主要是很多題目的dp會卡時間或者需要進一步優化

2樓:

當你寫多了題目之後。

才會發現:

DP只能算暴力,

還可以斜率優化,單調佇列優化,平行四邊形優化……

還有區間DP,數字DP,樹上DP,概率DP,甚至插頭DP這種神奇的DP。

最後的最後又發現:生成函式才是正解。

然後就陷入推式子的恐懼。

比如說:

求長度為 n 單調不降序列 且滿足 A i ∈ [1, m] 的序列個數

當n,m<=500

設 f [i][j] 表示填了前 i 個數,且以 j 結尾的方案數,答案即為 f [n + 1][m]。

f [i][j] =∑f [i 1][k](k<=j)

字首和之後你可以得到乙個o(nm^2)的優秀演算法。

但是當n,m<=10^6呢?

只能把 f [j] 當做乙個多項式 x^j 的係數

Fx=(1 + x + x^2x^(m1) )^(n+1)的x^(m-1)項係數就是答案。

回到被生成函式支配的恐懼吧(其實上面這個多項式開方的演算法還可以繼續往下推,也可以隔板法直接碾)

3樓:Logan.C

動態規劃.....從腦子裡搜尋出結構板塊來。

這東西還是得從最簡單的說起,在我看來,動態規劃的關鍵還是遞推公式吧,只要有了這個,感覺就成功了一大半。

等有時間了再更吧---------

4樓:

MIT這門課講的DP我覺得挺好,從0/1揹包問題著手的麻省理工學院公開課:電腦科學及程式設計導論

然後就是做習題了吧,DP變種也有很多種,http://soj.me

也有很多DP的習題。

5樓:王浩

我玩過一階段演算法競賽,也刷過不少題。 動態規劃確實也曾經一度是我最頭痛的問題,但它似乎永遠都是求解最優化問題的最佳方法。動態規劃的思想和表達方式都非常簡單,求乙個問題的解,先得準確的找到該問題所包含的重疊子問題,(所謂重疊子問題,就是在求解原問題的解的過程中需要大量重複求解的子問題),求出其重疊子問題的解並將其記錄以備再次使用,這樣可以大量削減搜尋的開銷,提高時間複雜度。

動態規劃是在嘗試了乙個問題的每一種可能的解之後,再從中找出最優解。所以動態規劃是一種既保證正確性又非常高效的演算法。

接下來談談我個人學習動態規劃的一些體會。之前在學習動態規劃演算法時每遇到問題總感覺不知該如何使用動態規劃求解,在讀了別人的解題報告後頗有一種神奇之感,理解了其中的思路後,更是感嘆別人是怎麼想到的。做了很多題都是如此。

其實,在你對動態規劃演算法還沒有乙個深入的理解時,刷題只能讓你感到越來越困惑。我個人建議你需要先做大量的閱讀和思考。找一些演算法模擬較高質量的書籍認真閱讀,多思考,嘗試理解其精髓。

也可以到網上找一些大牛寫的比較通俗易懂的文章來幫助自己理解,但是好書必須要看,更要透徹理解,重點關注各種形式的經典動態規劃問題,包括揹包,樹型,計數動態規劃等等。經過一階段的閱讀,思考,你會發現很多之前的困惑都不再存在,思路也更加開闊,你對動態規劃的理解更加深入,透徹。這時,再去一些高質量題庫中做一些難度遞增的,包括各種形式的動態規劃的題目,無需太多,50多道足矣。

嘗試自己去思考,如果實在感到無法解決的話,可以看別人的題解思路。 經過這個過程我相信你會游刃有餘的將動態規劃思想應用於解決演算法問題中。

以上為本人學習動態規劃的一點經驗,不一定適合每個人,但是我希望可以為各位學習動態規劃的朋友提供些許參考。

附一些本人認為比較有幫助的資料:

《演算法技術手冊》

網路資源: http://

6樓:木木熊

動態規劃的難處主要在於你去選擇哪些資訊去描述乙個「狀態」,一旦狀態的意義對了,那麼轉移方程通常就能比較容易地構造出來。

所以關鍵是第一步的「直覺」,我覺得多做題還是有用的。

網易策劃為什麼這麼水?

作為一名遊戲策劃,我們現在做的都是專案,不是遊戲。資本只看收入,有收入才有獎金不是 我在這個專案做好了,沒準就出去立項或者跳槽了不是?那我走了之後我還管老專案?愛咋地咋地不是?我又不是製作人,是製作人也不一定剛得過資本。而且新策劃剛來,基本都是壓力山大,指標壓著,老坑踩著,大家能登陸遊戲就不錯了 另...

學城鄉規劃為什麼會很累很忙?具體要做些什麼?

並不覺得城市規劃比別的專業更累更忙。我覺得造成這種錯覺的原因之一可能是規劃涉及面太廣導致專業課程類別太多,從美術到經濟學地理學統計學都有,還有社會實踐。就我個人的專業學習經歷來看,規劃的課程並未嚴格遵循開枝散葉式的生長體系,這與其它專業由淺入深 課程一脈相承比起來顯得散,進而顯得學的東西多。但我們當...

英語為什麼這麼難?

黃伊彤 說起學英語,首先會想我們要背單詞,學語法,背課文,做大量的題,這就是我們對英語整個學習的全部認知。我們從小就是這樣學英語,甚至我們的父母都是這樣學來的,但是我想今天問大家乙個問題,就是我們這麼拼命的學英語,你們有沒有想過我們最終取得的結果是不是令我們滿意?連續5年我們國家新課標高考,滿分是1...