atcoder#ABC300H. [ABC300Ex] Fibonacci: Revisited
[ABC300Ex] Fibonacci: Revisited
题目描述
数列 の一般項 を次のように定義します。
$ a_n\ =\ \begin{cases}\ 1\ &\ (0\ \leq\ n\ \lt\ K)\ \\ \displaystyle{\sum_{i=1}^K}\ a_{n-i}\ &\ (K\ \leq\ n)\ \\ \end{cases} $
整数 が与えられます。 を満たす全ての非負整数 に対する の総和を で割った余りを求めてください。( はビット単位 AND)
ビット単位 AND とは? 整数 のビット単位 AND、 は以下のように定義されます。
・ を二進表記した際の の位の数は、 を二進表記した際の の位の数のうち両方が であれば 、そうでなければ である。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
答えを出力せよ。
题目大意
给定正整数 ,定义线性递推数列:
$$a_n = \begin{cases} 1 \ , \ (0 \leq n < k) \\ \displaystyle\sum_{i=1}^k a_{n-i} \ , \ (n \geq k)\end{cases} $$再给定 ,对所有「二进制下与 的按位与运算后为自身」的自然数 ,求 之和。
比如 , 时满足条件的 有 ,可以计算出 。
2 6
21
2 8
35
1 123456789
65536
300 20230429
125461938
42923 999999999558876113
300300300
提示
制約
- は整数
Sample Explanation 1
数列の各項を から順に並べると になります。 であるような非負整数は の 4 個なので、答えは になります。