hdu3555 2089 數字dp入門

2021-07-10 06:08:18 字數 642 閱讀 5311

hdu3555

給出數字n,要求1到n範圍內所有的數字中出現連續49的數字的個數。n很大。

例如500,那麼出現連續49的數字有49,149,249,349,449,490,491,942...499等15個數字。

這道題目就是明顯的數字dp入門題目。

我們先預處理一下,dp[i][j]表示的是i位數字並且第i位上的數字為j所不含49的個數

#include #include #include #include #include using namespace std;

long long dp[20][10];

//dp[i][j]表示的是i位數字並且第i位上的數字為j所不含49的個數

void init()

}} }

}long long solve(long long n)

digit[len+1]=0;

long long ans = 0;

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

}} }

}int solve(int n)

digit[len+1]=0;

int ans = 0;

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

{ for(int j=0;j

hdu5787 數字dp 數字壓縮

分析 大概是比較經典的數字dp,需要維護連續的 k 個數字不相同,所以我們的狀態記錄裡需要記錄前k 1個數字是哪些,擴充套件下一位的時候不能出現前k 1 位的數字。這樣就來設計狀態 dp len k ban 表示前長度為le n 連續的 k 個字元禁止出現相同,前k 1個數字為ba n 這裡的ban...

HDU 2089 數字dp (簡單)

數字dp 和hdu 3555類似,稍微複雜了點點,不同在於,一 多考慮4的情況 二 因為子串是 62 而3555的子串 49 末尾數字不同 所以這題要多加一種情況if num i 2 last 6 last 表示前一位數num i 1 狀態還是一樣 dp i 0 表示所有不含不吉利的數開頭任意 dp...

HDU 2089 數字 dp 入門

可暴力,可dp。參考資料 click me 第二個版本的 參考資料 7k 的板子 第二個版本 在下面 做這道題的時候有兩個疑問 第一 既然在dp中 51 既可以看做 51 也可以看做 0051 或者 000051 那麼51這個數字會不會計算多次。第二 既然狀態轉移保證了數字的合法,在統計的時候是否還...