hdu3555Bomb(數字dp 記憶化搜尋)

2021-07-11 23:31:03 字數 986 閱讀 8869

這道題目其實是不要62的簡化版,說白了就是找含49的個數

#include 

#include

long

long dp[20][5];

int digit[20];

using

namespace

std;

//dp[i][0]表示不含49的數字

//dp[i][1]表示首位為9,不含49的數字

//dp[i][2]表示含49的數字

void prepare()

}long

long solve(long

long x)

for(int i=cnt;i>=0;i--)

}return sum;

}int main()

return

0;}

下面是用記憶化搜尋寫的,這種方法感覺還是比較常用,記憶化搜尋是什麼呢,我覺得就是把你計算過的部分記下來,不需要重新計算

#include 

#include

//dp[i][j]表示位數是i,狀態為j

//pos表示當前的位數

//status中0表示不含49,1表示上一位是4,2表示含49

//limit表示當前位是否受限制

using

namespace

std;

int digit[30];

long

long dp[30][3];

int prepare(long

long x)

return cnt;

}long

long solve(int pos,int status,int limit)

if(!limit)

dp[pos][status]=ans;

return ans;

}int main()

HDU 3555 Bomb 基礎數字dp

題意大致就是說給你乙個數n,要你求0 n之間含有49的數的個數 理解題意很簡單下面就直接貼 了 include include include includeusing namespace std int64 dp 21 4 int a 1000 void init int main int g 0...

hdu 3555 Bomb(數字dp初學)

題意 給定乙個n,求0到n範圍內不含49的數的個數 思路 這題是最基礎的數字dp,可模擬hdu2089 不要62,事實上,這題比不要62更簡單一些。首先,還是預處理打表,用乙個二維陣列來儲存狀態,dp i j 表示i位的滿足狀態j的數的個數,j有三種狀態,0 不含49的,1 不含49的,但是首位是9...

數字DP入門之hdu 3555 Bomb

hdu 3555 bomb 題意 在1 n 1 n 2 63 1 範圍內找出含有 49 的數的個數 與hdu 2089 不要62的區別 2089是找不不含 4 和 62 的區間範圍內的數,此題是含有 正好相反,對於 不要62 只是用第二位表示首位數字,這一題呢?看轉化 易知一定要要知道首位是9的個數...