# yukicoder No.2882 Comeback $O(\sqrt{B})$ 解法. ## 問題 https://yukicoder.me/problems/no/2882 > 正整数 $A,B\ (A<B)$ が与えられる.$A\bmod m\geq B\bmod m$ となる正整数 $m$ の個数を求めよ. ## 解答 剰余を $\%$ で表す. $-(m-1)\leq A\%m-B\%m\leq m-1$ より $$-1<\frac{A\%m-B\%m}{m}<1$$ なので以下が成り立つ. $$\begin{array}{c} \left\lfloor\frac{A\%m-B\%m}{m}\right\rfloor\in\{-1,0\},\\ \left\lfloor\frac{A\%m-B\%m}{m}\right\rfloor=0\iff A\%m\geq B\%m. \end{array}$$ よって求める値は次に一致する. $$B+\sum_{1\leq m\leq B}\left\lfloor\frac{A\%m-B\%m}{m}\right\rfloor$$ ここで $A\%m=A-\lfloor A/m\rfloor m$ と $m$ が正整数であることを用いれば $$\begin{align*} \left\lfloor\frac{A\%m-B\%m}{m}\right\rfloor &=\left\lfloor\frac{A-B}{m}\right\rfloor-\left\lfloor\frac{A}{m}\right\rfloor+\left\lfloor\frac{B}{m}\right\rfloor\\ &=-\left(1+\left\lfloor\frac{B-A-1}{m}\right\rfloor\right)-\left\lfloor\frac{A}{m}\right\rfloor+\left\lfloor\frac{B}{m}\right\rfloor \end{align*}$$ であるので次の問題に帰着される. - 正整数 $N$ に対し $\sum_{k=1}^{N}\lfloor N/k\rfloor$ を求めよ. $\lfloor N/k\rfloor$ の取り得る値の種類数が $O(\sqrt{N})$ であることを用いればこれは $O(\sqrt{N})$ で計算できる. よって元の問題は $O(\sqrt{B})$ で解ける.
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up