ARC090D Number of Digits

题意 : 记 ,即 在十进制下的位数。

给出 ,求满足下列条件的数对 的个数 :

答案对 取模。

,时限


这里有一个 组数据的加强版 : Link

由于 是单调递增的上凸函数,在合法方案中,当 增大时, 减小。

  • Case 1

枚举 的值。 的数目为

的因数,则选取一个长为 的区间即可满足题意。

故方案数为:

大力求因数,复杂度为

  • Case 2

枚举 。设区间中 的有 个, 的有 个。

为了与 Case 1 区分,这里要求 。且由于个数限制也有

化式子 :

注意到当确定 之后就能确定 ,故只需计数合法的 的个数。

,可得

解得

还要考虑 的上界,将上界代入并用得到的 修正上述范围。

注意到当 时,这两个条件必定能满足,所以只有很小一部分 需要修正。

其他的部分为

也只需统计因数。

  • Case 3

枚举 ,枚举 ,则

由于此时我们跨越了至少一整段, 的范围都是 ,枚举量是很小的。

设区间中 的有 个, 的有 个。

此时仍然有

计算出中间整段的 的和 ,记 。则有

问题转化为 : 给出不定方程 ,求解 (在一定范围内)的对数。

,若 ,则无解。否则将 除以 转化为 的情况。

得到特解 (注意可能无解),则通解为

将范围不等式的四个边界分别代入,即可得知方案数。

这部分的复杂度为