時間限制:1.0s 記憶體限制:256.0mb
提交此題 錦囊1 錦囊2
問題描述
如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k = 4,l = 2的時候,所有k好數為11、13、20、22、30、31、33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。
輸入格式
輸入包含兩個正整數,k和l。
輸出格式
輸出乙個整數,表示答案對1000000007取模後的值。
樣例輸入
4 2
樣例輸出
7 資料規模與約定
對於30%的資料,kl <= 106;
對於50%的資料,k <= 16, l <= 10;
對於100%的資料,1 <= k,l <= 100。
const
int mod=1e9+7;
const
int n=1e2+5;
ll dp[n][n];
/**思路:dp
k進製 l位數
例:1. input:3 2
11 20 22
output:3
2. input:3 3
111 200 202 220 222
output:5
從以上例子中可以看出 可以通過列舉位數和首位來求解
dp[i][j]表示有i位數,首位是j的情況的種類
**/int main()
ll ans=0;
rep(i,1,k) ///首位不能是0
ans=(ans+dp[l][i])%mod;
printf("%i64d\n",ans);
}return
0;}
演算法訓練 K好數 (DP
問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。輸入格式 輸入包含...
演算法訓練 K好數(dp 動態規劃)
問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。輸入格式 輸入包含...
演算法訓練 K好數
問題描述 如果乙個自然數n的k進製表示中任意的相鄰的兩位都不是相鄰的數字,那麼我們就說這個數是k好數。求l位k進製數中k好數的數目。例如k 4,l 2的時候,所有k好數為11 13 20 22 30 31 33 共7個。由於這個數目很大,請你輸出它對1000000007取模後的值。輸入格式 輸入包含...