ARC060B题解

题面

Description:
确定最小正整数 \(b\),使得给定正整数 \(n\)\(b\) 进制下的个数位和为 \(s\)

\(1\leq n,s\leq10^{11}\)


首先分类。

  1. \(s>n\),显然无解。
  2. \(s=n\),答案为 \(n+1\)
  3. \(s<n\),见下:

Sol.1
\(n\)\(b\) 进制下每一位数分别为 \(a_1,a_2,\ldots,a_m\),那么有以下两个等式:

\[a_1+a_2\times b+a_3\times b^2+\ldots+a_m\times b^{m-1}=n\\a_1+a_2+a_3+\ldots+a_m=s \]

上下两式相减,可得

\[a_2\times(b-1)+a_3\times(b-1)(b+1)+a_4\times(b-1)(b^2+b+1)+\ldots+a_m\times(b-1)(b^{m-2}+b^{m-3}+\ldots+b+1)=n-s \]

所以

\[b-1\mid n-s \]

于是我们只需要做所有 \(n-s\) 的因数并进行试验即可。时间复杂度 \(O(\log n\sqrt n)\)

Sol.2
分类。

  1. \(b\leq \sqrt n\),暴力求解即可。
  2. \(b>\sqrt n\),则 \(b\) 进制数最多两位。设该数为 \(\overline{pq}\),则有

\[p+q=s \\ p\times b+q=n \]

由于 \(b>\sqrt n\),所以 \(p<\sqrt n\)。枚举 \(p\),可得 \(b=\dfrac{n-s+p}{p}\)。取这些 \(b\) 的最小值即可。时间复杂度 \(O(\log n\sqrt n)\)

Code for Sol.2

posted @ 2022-06-05 19:57  1358id  阅读(18)  评论(0编辑  收藏  举报