關於動態規劃的一些經驗與總結

2021-07-24 02:24:14 字數 575 閱讀 4669

動態規劃是乙個考驗技巧性的演算法,對於動態規劃演算法,**幾點經驗。

首先是設計狀態,我們肯定是要有乙個一維或多維的狀態的,那麼如何設計它們的意義呢,首先我們可以分析出題目中的一些重要的量,比如當前時間,選了幾個,考慮到了**,對於這些狀態我們是要以乙個值來表示這些狀態的最優情況,比如f[i][j][k]..=p,i,j,k表示狀態,p表示那個值,我們i,j,k,p都是這些重要的量,我們應該先把這些重要的量列出,然後感覺一下如何設計狀態容易轉移,一般來說設計了乙個好的狀態剩下的事情都比較好辦。

如果這個狀態不是太好,我們可以考慮優化轉移,我們可以再開乙個別的陣列維護我們轉移的資訊,比如說維護最小值,或者用高階資料結構維護,或者發現狀態的一些性質,這樣就能更快的轉移。

其實動態規劃也是考慮了所有的狀態,如果說你設計的dp沒有將所有的狀態考慮到,那麼一定是錯誤的,動態規劃的實質就是列舉了所有的狀態,然後保留最大值。

個人認為動態規劃就是乙個分類,動態規劃的狀態就是分類的標準,動態規劃在每一中類別中都取得最優解,另外對於每個基本元素來說,一般都有幾個狀態,比如說揹包問題中每個物品的選與不選,或者是這個元素放在哪個位置等等等等,考慮到每個元素的狀態也有助於我們設計整體的狀態。

關於程式設計的一些經驗總結

關於程式設計的一些經驗總結 編寫 用於存放最終釋放的程式。例如 我們要製作乙個英語學習軟體,名為 english 版本為1.0,那麼我們的程式設計環境中應存在以下資料夾 drive programs english1 debug drive programs english1 documents d...

有關Rujia Liu 動態規劃的 一些總結

1.動態規劃是什麼?就是很高階的大暴力啊!打暴力的時候把值存起來避免重複計算,用來求組合優化問題的 乙個玄學東西 2.如何確定狀態及轉移方程?一般思路先把暴力打出來吧,說不定打打暴力 就像第一次做數字三角,暴力出dp 就把狀態和轉移方程找到了 鄙人覺得做動規前 先打暴力,一是避免翻車,二也能梳理思路...

Unity中專案資源管理的一些經驗與總結

原本想寫一下unity中通過資源來減小遊戲中記憶體效能的文章,不過我一直採用的還是打圖集 壓資源 延遲載入等老一套,感覺不是很夠講所以就只講了一部分優化,後面一部分就來講一下unity專案中的資源管理吧。unity的專案管理可以說在不同的公司中會很不相同,每乙個公司可能都會有自己的一套流程,但是核心...