藍橋杯 K 進製數

2021-10-14 13:08:45 字數 841 閱讀 3874

題目描述

考慮包含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

輸出

十進位制表示的結果

樣例輸入210

樣例輸出

90ac**如下

#include

#include

#include

using

namespace std;

#define ll long long

//求階乘n!

ll fact

(int n)

return res;

}//計算組合數

ll c

(int sel,

int whole)

intmain()

cout<}

主要的重點是如何插空,因為0不能相鄰,對於n位數,最多有n/2個0,我一開始的疑惑點就在於c(i,n-i)還是c(i,n/2)。我們來考慮一下極端情況,當數字只有1個0的時候,0可以插入的位置有n-1個而不是n/2個(畫圖就能明白),所以是c(i,n-i)

藍橋杯 K 進製數

時間限制 1sec 記憶體限制 128mb 提交 152 解決 46 題目描述 考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.考慮包含n位數字的k 進製數.定義乙個數有效,如果其k 進製表示不包含兩連續的0.例 1010230 是有效的7位數 1000198 無效...

藍橋杯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到達...