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