數位dp
ZustinLau
I am currently studying Economics at the Chinese University of Hong Kong and I am interested in data structure and algorithms.
展开
-
P2657 [SCOI2009] windy 数
windy數 定義:1. 個位數是一個windy 數2. 每個相鄰的位數相差為2或以上(必須為整數差值),不存在00146這樣的前導0觀察定義2,我們知道位數的值影響我們的判斷,所以我們考慮 dp[i][j] 等於 i 位數為j的時候有多少windy數,你可以想像為 0 ~ j*10^(i-1) - 1有多少windy數。然後你會知道每個區間的windy數都是獨立的,他們符合加法律。所以 對於一個ABCD,我們可以把他拆解為 windy(A000) + windy(B000) + windy原创 2022-03-27 23:26:20 · 104 阅读 · 1 评论 -
P2602 [ZJOI2010]數字計數
0-9,0-99,0-999,0-9999 ........當中每一位數字出現的次數都是一樣的。f[i] 對於i位數的數字,每個數字出現的次數,f[i] = f[i - 1] * 10 + 10^(i - 1)但是這裡會有一個問題,就是前置0,因為對於上面的公式會把0001,0002,0003 當中出現的0也計算進0的出現次數中,所以最後我們要扣除這些前導0的出現次數。假設說我們已經知道不同位數不同數字的出現次數,我們可以把一個4位數看成ABCD, 我們可以輕易算出A000中不同數字的出現次原创 2022-03-27 04:09:42 · 304 阅读 · 0 评论