k好數 (藍橋杯)

2021-07-07 02:11:11 字數 987 閱讀 8249

時間限制: 1 sec 記憶體限制: 128 mb 提交: 22 解決: 3 [提交][狀態][討論版]

題目描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k

= 4,l = 2的時候,所有k好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對363520489取模後的值。

輸入 每個測試點(輸入檔案)存在多組測試資料。

每個測試點的第一行為乙個整數task,表示測試資料的組數。

在一組測試資料中:

輸入包含兩個正整數,k和l。1 <= k,l <= 100。

輸出 輸出乙個整數,表示答案對363520489取模後的值。

樣例輸入 1 4 2 樣例輸出 7

全列舉 100的100次方……

然而看條件 相鄰的兩項數值上不能相鄰

典型的動態規劃條件 (每一步的方法與上一步有關)(當時居然沒看出來)

狀態轉移方程 : dp[i][j] = σdp[i - 1][p](p >= 1 && p <= l && p != j + 1 && p != j - 1)

for i從1到最高位數

····for j從 1 到 最大數字(k好數的最大數字應該是 k - 1)

··········for k從1到最大數字

················if k != j - 1 || k != j + 1

···················dp[i][j] += dp[i - 1][k] % mod;

cout<< σdp[l][i] % mod (i >

= 1 && i <=

l )<

藍橋杯 K好數

演算法訓練 k好數 問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值...

藍橋杯 K好數

演算法訓練 k好數 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目...

K好數 藍橋杯

資源限制 時間限制 1.0s 記憶體限制 256.0mb 問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你...