题库练习 Travelling Salesman and Special Numbers
← 上一题 下一题 →

A11512 | Travelling Salesman and Special Numbers

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

The Travelling Salesman spends a lot of time travelling so he tends to get bored. To pass time, he likes to perform operations on numbers. One such operation is to take a positive integer $x$ and reduce it to the number of bits set to $1$ in the binary representation of $x$ . For example for number $13$ it's true that $13_{10}=1101_{2}$ , so it has $3$ bits set and $13$ will be reduced to $3$ in one operation.

He calls a number special if the minimum number of operations to reduce it to $1$ is $k$ .

He wants to find out how many special numbers exist which are not greater than $n$ . Please help the Travelling Salesman, as he is about to reach his destination!

Since the answer can be large, output it modulo $10^{9}+7$ .

输入格式

The first line contains integer $n$ ( $1<=n<2^{1000}$ ).

The second line contains integer $k$ ( $0<=k<=1000$ ).

Note that $n$ is given in its binary representation without any leading zeros.

输出格式

Output a single integer — the number of special numbers not greater than $n$ , modulo $10^{9}+7$ .

输入输出样例

输入 #1
110
2
输出 #1
3
输入 #2
111111011
2
输出 #2
169
C++ 编辑器
输入
输出