數字dp初步 數字dp的兩種方式

2022-05-31 17:39:11 字數 328 閱讀 2925

數字dp:一類統計區間[l,r]內某種符合規定的數字個數的題目。特徵是r的範圍會很大,o(n)範圍內無法完成。

一般而言,解決這類題目有兩種方式,一種是遞推,另一種是記憶化搜尋。

遞推:1)利用dp求出陣列f[i][j](表示有i位,最高位為j的數字中符合要求的數字的個數)

2)根據給出的[l,r],利用f統計答案

記憶化搜尋:

1

int dfs(int pos,int pre,int lim)

私以為,如果一道數字dp題同時支援兩種寫法,則記憶化搜尋的編碼難度和邏輯清晰度是優於遞推的,遞推的統計冗長還容易漏情況。

數字dp的兩種實現方式

一.遞推 學的第一種方法就是這個,但是個人認為這種方式在某些題上比較難實現,比如 blance number hdu 3709 這道題本蒟蒻沒想出怎麼用遞推預處理,反而是記憶化搜尋的方式更容易懂.以hdu 2089為例,本題的遞推還是比較好實現的.二.記憶化搜尋 這種方法就比較爛大街了,基本每道數字...

數字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...

1042 數字0 9的數量 數字DP

1042 數字0 9的數量 基準時間限制 1 秒 空間限制 131072 kb 分值 10難度 2級演算法題 給出一段區間a b,統計這個區間內0 9出現的次數。比如 10 19,1出現11次 10,11,12,13,14,15,16,17,18,19,其中11包括2個1 其餘數字各出現1次。inp...