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這個數字會不會計算多次。第二 既然狀態轉移保證了數字的合法,在統計的時候是否還...