數字dp模版

2021-07-06 03:58:53 字數 360 閱讀 7018

int dfs(int i, int s, bool e) 

~~f為記憶化陣列;

~~i為當前處理串的第i位(權重表示法,也即後面剩下i+1位待填數);

~~s為之前數字的狀態(如果要求後面的數滿足什麼狀態,也可以再記乙個目標狀態t之類,for的時候列舉下t);

~~e表示之前的數是否是上界的字首(即後面的數能否任意填)。

~~for迴圈列舉數字時,要注意是否能列舉0,以及0對於狀態的影響,有的題目前導0和中間的0是等價的,

但有的不是,對於後者可以在dfs時再加乙個狀態變數z,表示前面是否全部是前導0,也可以看是否是首位,

然後外面統計時候列舉一下位數。it depends.

數字dp模版(dp)

1 include 2 include 3 include 4 include 5 6using namespace std 78 intt 9long long dp 19 19 2005 10 long long l,r 11int shu 20 12 13long long dfs int l...

數字dp的模版

typedef long long ll int a 20 ll dp 20 state 不同題目狀態不同 ll dfs int pos,state變數 bool lead 前導零 bool limit 數字上界變數 不是每個題都要判斷前導零 計算完,記錄狀態 if limit lead dp po...

模版 動態 dp

終於來寫這個東西了。lg 模版 給定 n 個點的數,點有點權,m 次修改點權,求修改完後這個樹的最大獨立集大小。我們先來考慮樸素的最大獨立集的 dp dp u 0 sum v max dp u 1 val u sum v dp v 0 現在我們就擁有了乙個 o nm 的做法,但是明顯它不優秀。既然支...