藍橋杯 K 進製數

2021-08-17 16:34:51 字數 775 閱讀 8592

時間限制: 1sec 記憶體限制: 128mb 提交: 152 解決: 46

題目描述

考慮包含n位數字的k-進製數. 定義乙個數有效, 如果其k-進製表示不包含兩連續的0.

考慮包含n位數字的k-進製數. 定義乙個數有效, 如果其k-進製表示不包含兩連續的0. 

例: 1010230 是有效的7位數 

1000198 無效 

0001235 不是7位數, 而是4位數. 

給定兩個數n和k, 要求計算包含n位數字的有效k-進製數的總數. 

假設2 <= k <= 10; 2 <= n; 4 <= n+k <= 18.

輸入兩個十進位制整數n和k

輸出十進位制表示的結果

樣例輸入

2

10

樣例輸出

90

dp 因為0不能連續,所以直接把dp[i][0]認為是i位末位為0的種數dp[i][1]認為末位不為0的情況,則dp[i+1][0]=dp[i][1];

dp[i+1][1]=(dp[i][0]+dp[i][1])*(k-1);

#include#include#include#includeusing namespace std;

int main()

{ int n,k;

cin>>n>>k;

long long int dp[20][2];

dp[0][0]=0;

dp[0][1]=k-1;

for(int i=1;i

藍橋杯 K 進製數

題目描述 考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效 0001235 不是7位數,而是4位數.給定兩個數n和k,要求計算包...

藍橋杯K進製數題解

考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效 0001235 不是7位數,而是4位數.給定兩個數n和k,要求計算包含n位數字的有效k 進製數的總數.假設2 k 10 2 n 4 n k 18.這個題應該是乙...

藍橋杯 K 進製數 DFS

解析 對於k進製數,每個位置的數是0 k 1的。首先看首位,必不能為0,那麼有k 1種選法 定義idx,表示當前不為0的位置下標。接下來,有兩種選擇,乙個是第二位為0,乙個是第二位不為0。如果要第二位為0,那麼就把idx 2,跳到第三位,當前數目為 k 1 2 如果第二位不為0,那麼,idx 1到達...