藍橋杯K進製數題解

2021-08-20 03:15:18 字數 650 閱讀 2264

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

例: 1010230 是有效的7位數 

1000198 無效 

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

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

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

這個題應該是乙個遞推題。可以用f[i]表示i位(最高位是第i位)k進製數的總數,那麼就應該有:f[i]=(f[i-1]+f[i-2])*(k-1)。

解釋一下:f[i]也就是i位k進製數的總數應該等於:第i-1位為0與第i-1位不為0的情況的和乘以第i位的情況數(1..k-1)

(1)第i-1位為0的情況應該等於i-2位不為0的情況總數,即f[i-2]

(2)第i-1位不為0的情況應該等於f[i-1]

所以f[i]=(f[i-1]+f[i-2])*(k-1)

**:

#include #includeusing namespace std;

long long a[2000];

int main(int argc, char const *argv)

return 0;

}

藍橋杯 K 進製數

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

藍橋杯 K 進製數

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

藍橋杯 K 進製數 DFS

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