HDU 2089 不要62(數字DP)

2022-08-21 11:12:11 字數 893 閱讀 7740

詳細見

題目:

思路:資料量這麼大遍歷是不可能的,這道題其實是數字dp的經典題。

數字dp:

數字:個、十、百、千等就是數字

實質:暴力列舉加記憶化

適用範圍:在一段數的區間內找出滿足某些條件的數的個數

此題思路:

用二維陣列dp[i][j],其中i表示位數,j表示首位數字

得到狀態轉移方程:

詳細見**,但是值得注

意的是:

因為求得的是小於n的數,所以求[0,n]之 間的數需要求n+ 1.

#includetypedef 

long

long

ll;using

namespace

std;

int dp[10][10

];void preprocess()//

預處理dp[i][j] 即首位是j有i位數的數滿足條件的個數

}int cal(int n) //

計算0~n之間有多少滿足條件的數

d[len+1]=0

;

for (int i=len;i;i--) //

進行狀態轉移

return

ans;

}void

solve()

}int

main()

HDU2089 不要62 數字DP

problem description 杭州人稱那些傻乎乎粘嗒嗒的人為62 音 laoer 杭州交通管理局經常會擴充一些的士車牌照,新近出來乙個好訊息,以後上牌照,不再含有不吉利的數字了,這樣一來,就可以消除個別的士司機和乘客的心理障礙,更安全地服務大眾。不吉利的數字為所有含有4或62的號碼。例如 ...

Hdu2089 不要62 數字dp

include includeint dp 10 3 dp i 0 為位數小於等於i且不含62也不含4的數字的個數 dp i 1 為位數為i且首位為2且不含62也不含4的數字的個數 dp i 2 為位數小於等於i且含62或4的數字的個數 int digit 10 void er int wei in...

hdu 2089 不要62 (數字dp)

思路 用變數記錄吉利數,和最高位為2的吉利數還有不是吉利數的個數。code include include includeusing namespace std int dp 10 3 dp i j i表示位數,j表示狀態 dp i 0 表示不存在不吉利數字 dp i 1 表示不存在不吉利數字,且最...