2018暑假集訓第五周感想
第五周有點漫長。。題打得有點磨,急躁,自卑等等負面情緒不斷出來(ㄒoㄒ)
線段樹真難,dp也真難。。如果線段樹是有思路實現不了,dp就是完全沒思路,核心思想就是找一個轉移方程,然而ヽ(´¬`)ノ
尋找dp的轉移方程真是一個艱難的過程,同時還伴隨著恐怖的狀態壓縮,也沒有什麽固定的套路和方法,只能靠多練習和領悟了(?•ω•?)
dp也就是動態規劃是針對一類最優解的算法,核心思想是類似分治,把一個問題分解成若幹個子問題,通過每一個子問題的最優決策得到最優解(~ ̄▽ ̄)~
dp的實現有遞推,也有記憶化搜索,也就是從下至頂,和從頂向下, 也就是遞推和遞歸兩種實現方法,具體哪個視題目而定,肯定是哪個簡單好實現用哪個?(?????)?
接下來盜用一下,學長ppt裏的概念φ(>ω<*)
首先,動態規劃是解決多階段決策過程最優化問題的一種方法(~ ̄▽ ̄)~
然後,把問題分成幾個相互聯系的有順序的幾個環節,這些環節即稱為階段。︿( ̄︶ ̄)︿
再然後,某一階段的出發位置稱為狀態。通常一個階段包含若幹狀態。(o?▽?)o
再再然後,決策就是從某階段的一個狀態演變到下一個階段某狀態的選擇。ヾ(?∀?ゞ)
再再再然後,由開始到終點的全過程中,由每段決策組成的決策序列稱為全過程策略,簡稱策略。(????)?"""
最後,前一階段的終點就是後一階段的起點,前一階段的決策選擇導出了後一階段的狀態,這種關系描述了由i階段到i+1階段狀態的演變規律,稱為狀態轉移方程。ヾ(??▽?)ノ
動態規劃適用的基本條件,具有相同子問題,滿足最優子結構,滿足無後效性,解決動態規劃問題的一般步驟就是ヽ(?∀?)?(?∀?)?
第一步:找到一個原問題,並分析它的子問題,(??∀?)?
第二步:根據原問題和子問題確定狀態,ヾ(o´∀`o)?
第三步:確定狀態轉移方程,ヾ(●´∀`●)
第四步,確定編程實現方式。(?▽?*)
dp問題最經典的還有背包問題,這裏掛上dd大佬的背包九講鏈接https://blog.csdn.net/ling_du/article/details/41594767大佬牛bi(自行和諧)( ̄3 ̄)a
最後還有就是狀態壓縮的dp,狀態壓縮不只是dp,很多類型都有狀態壓縮,核心思想就是用二進制來優化,只能先挖個坑先了ヽ(´¬`)ノ
啊啊啊,集訓就這麽結束了,可是感覺自己還是很菜,還是那麽貪玩,唉,upupupup(*^o^)人(^o^*)
2018暑假集訓第五周感想