數字dp筆記

2022-06-20 05:54:13 字數 501 閱讀 8930

數字dp:

一、問題簡介:

與數字有關的區間統計問題

例:求給定區間中,滿足給定條件的某個d進製數的數量,而限定條件往往與數字有關,比如數字之和,制定數碼個數,數的大小分組等

基本思想:逐位確定,預處理

二、通用狀態:

1.預處理,從高位到低位列舉當前數字第一次小於n的那一位,這樣的話,之前的位數都已經確定(都與n相等),之後的位數可以隨意列舉。

2.f[i][j]表示處理到第i位,這i位的狀態是j時的數字個數

或者:f[i][j][n][m]表示處理到第i位,這i位的狀態是j,限制是nm時的數字個數

三、自己的summary:

1.數字dp是在沒有限制的條件下進行預處理的,所以在我們實際迴圈中應該判斷這一位到第有沒有限制,分情況進行更新

2.注意迴圈順序,一般而言都是從高位到低位

----------------持續更新?----------------✿✿ヽ(°▽°)ノ✿-----------------

數字dp筆記

我太菜了。放幾個例題慢慢品。1.不要62 題意 輸出一段區間上不出現62和4的數字總個數 include using nemespace std intini int x 存個數字,位數為k 一開始看的是最高位,所以初始是達到上限的 一開始那個數字沒有上一位,所以if6是0啦 return dfs ...

數字dp學習筆記

我們通常使用字首和的思想和記憶化搜尋來實現數字 dp。就是上面所說的常見問法。例題 windy 數 int dfs int k,int x,int p,int q if p q f k x res return res 這道題的難點就在於對相鄰兩個數字之差至少為 2 的處理,我們一開始將 x 設為 ...

演算法筆記 數字dp

前言 當我們遇到某些題目的時候 比如像讓你統計l r這乙個區間內的數字和以及滿足條件的數有幾個這一類的題目 常常會因為區間太大而無法計算。這時候,我們就需要用上我們偉大的數字dp啦 數字dp的實質就是換一種暴力列舉的方式,使得新的列舉方式滿足dp的性質,然後記憶化就可以了。nm這本質上不還是記憶化搜...