# 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
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.