CF 1103B Game with modulo
題目
$a, x$ 是正整數。顯然有
\begin{aligned}
x \ge 2x \pmod{a} \implies a \le 2x
\end{aligned}
若 $x \le a$ 則
\begin{aligned}
x < 2x \pmod{a} \implies a > 2x
\end{aligned}
證明
首先,$x < 2x \pmod{a} \implies x \ne a$ 即 $x < a$,故
\begin{aligned}
x < 2x \pmod{a} \iff x < 2x \bmod a.
\end{aligned}
假設 $ a \le 2x $,則
\begin{aligned}
\color{red}{2x \bmod{a} \le 2x - a} = x + (x - a) < x
\end{aligned}
矛盾!
比賽時我花了 30 分鐘推出了上述結論。
據此可以確定 $a$ 的范圍
有兩種情況
CASE1
$ 1\le a \le 2$
此時 ask(2, 1) 即可確定 $a$ 的值。
CASE2
$ x < a \le 2x$ 且 $x = 2^k, k \ge 1$
在剩下的一個小時內,我都沒想出 CASE2 應該怎么做。
思考的方向當然是二分答案。
注意到,當 $ x < i <a$ 時 $i \bmod a = i > x$,當 $a \le i \le 2x$ 時 $ i \bmod a = i - a < x$
因此 $ a = \min\{ i : i \bmod a < x \bmod a\} $
implementation
轉載于:https://www.cnblogs.com/Patt/p/10306884.html
總結
以上是生活随笔為你收集整理的CF 1103B Game with modulo的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简易的CRM系统案例之SpringMVC
- 下一篇: winform程序打包成exe文件