SP7356 ITERBIT - Iterated Bitcount Function

题目描述

设 $f(x)$ 为 $x$ 的二进制表示中 $1$ 的数量。 定义 $f^k(x)$ 的方法如下: - 当 $k = 1$ 时,$f^k(x) = f(x)$; - 当 $k > 1$ 时,$f^k(x) = f^{(k-1)}(f(x))$。 定义 $f^*(x)$ 为最小的满足 $f^k(x) = 1$ 的正整数 $k$。 现在,给定整数 $N$ 和 $K$,需要计算出有多少个整数 $x$ 在 $1$ 到 $N$ 之间且满足 $f^*(x) = K$。 ### 输入格式 第一行输入一个整数 $T$,表示测试用例的数量。接下来的 $T$ 行中,每行包含两个以空格分隔的整数 $N$ 和 $K$。 ### 输出格式 对于每个测试用例,输出一个整数表示结果,结果需对 $1000000007$ 取模。 ### 样例输入 ``` 6 1 1 2 1 3 1 3 2 13 3 20 2 ``` ### 样例输出 ``` 1 2 2 1 3 10 ``` ### 数据范围与提示 - $1 \leq T \leq 1000$ - $1 \leq N \leq 10^{500}$ - $1 \leq K \leq 10$ **本翻译由 AI 自动生成**

输入格式

输出格式