數字DP小結

2022-05-21 03:41:28 字數 580 閱讀 5828

數字dp是用來解決一段區間內,存在多少個數滿足某個數的性質的問題

題目中輸入的數可能會爆int,一般為0 < a、b < 2*10^9

數字dp中處理的是每乙個數的位,而不是這個數的本身

也就是說1024,2024在後面三位在性質上是一樣的,所以dp會儲存這三位的狀態

這樣就節省了時間複雜度

一般來說,數字dp的時間複雜度位常數k*(dp陣列的大小)

2.數字dp狀態的定義

數字dp的狀態依賴於題目說需要求的數的性質

一般來說是dp[20][性質1][性質2]and so on。。。第一維空間儲存數的位,第二維空間儲存第一種性質and so on。。。。

例如:hdu2089《不要62》 題意是求在區間(a,b)中有多少不含62,或者4這種數

dp狀態定義為dp[20][2]第一維空間表示數的位,第二維表示是否含有6,因為如果是否含有4直接判斷就行,而含有62的時候就需要

先儲存前乙個數是否是6,如果含有的話這乙個數是否是2,如果是的話就不存這個數

。。。未完待續

數字DP小結

download.csdn.net detail u012959992 8892265 一般是求小於等於數字n的某些特徵數字個數,或者是區間 l,r 的之間的某些特徵數字個數,後者一般可以轉換成求差的方式來做。數字處理函式int f int num return dfs pos,s true dig...

數字dp小結

數字dp可不是對於數的每一位進行dp,而是指對於這個數的組成進行dp。對於數的每一位進行dp,只是數字dp的一類題目。題目描述 現在有兩個要求 這是乙個 n n 106 n n leq 10 6 n n 10 6 位的數 不含前導零 相鄰的兩位的差值大於等於 p p 9 p p leq 9 p p ...

數字dp小結

在這裡寫個總結吧 對於數字dp,之前學的時候,學得很唬,現在又學了一發,還是感覺這個東西不是很好掌控.這個東西有他的思想,當然也有一定的套路和模板,我大概可以掌握模板,了解了一些套路,對他的思想也有了一些認識.雖然說思想是根本,但是掌握套路和模板也是必不可少的,不過只知道套路和模板對於一些比較活的題...