#6995. 数字转换

数字转换

题目描述

对于任意十进制正整数xx,我们定义一次数字转换是将数字xx转变为xx在二进制表示下11的个数。显然,任意正整数经过若干次数字转换后,最终都会得到11,此时经过的转换次数我们也称之为最大转换次数。 例如(27)10(27)_{10}在二进制下为(11011)2(11011)_2,则2727经过一次数字转换后,得到了4444再经过一次数字转换后得到了11。所以2727经过22次转换后,得到了11,即2727的最大转换次数为22。 现给定xxkk,请计算出11~xx中,有多少数字的最大转换次数为kk

输入格式

输入第一行,一个二进制表示的正整数xx 输入第二行,一个非负整数kk

输出格式

输出11~xx中,最大转换次数为kk的数字个数,并对109+710^9+7取模。

11
1
1

样例解释 1

1~3中,只有2的最大转换次数为1

11011
2
13

数据范围

  • 30%30\% 的数据,1x2201\leq x \leq 2^{20}, 0k50\leq k\leq 5
  • 50%50\% 的数据,1x26311\leq x \leq 2^{63}-1, 0k200\leq k\leq 20
  • 100%100\% 的数据,1x210001\leq x \leq 2^{1000}, 0k1030\leq k\leq 10^3