CF 1103B Game with modulo
Posted patt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CF 1103B Game with modulo相关的知识,希望对你有一定的参考价值。
$a, x$ 是正整数。显然有
egin{aligned}
x ge 2x pmod{a} implies a le 2x
end{aligned}
若 $x le a$ 则
egin{aligned}
x < 2x pmod{a} implies a > 2x
end{aligned}
证明
首先,$x < 2x pmod{a} implies x
e a$ 即 $x < a$,故
egin{aligned}
x < 2x pmod{a} iff x < 2x mod a.
end{aligned}
假设 $ a le 2x $,则
egin{aligned}
color{red}{2x mod{a} le 2x - a} = x + (x - a) < x
end{aligned}
矛盾!
比赛时我花了 30 分钟推出了上述结论。
据此可以确定 $a$ 的范围
有两种情况
CASE1
$ 1le a le 2$
此时 ask(2, 1) 即可确定 $a$ 的值。
CASE2
$ x < a le 2x$ 且 $x = 2^k, k ge 1$
在剩下的一个小时内,我都没想出 CASE2 应该怎么做。
思考的方向当然是二分答案。
注意到,当 $ x < i <a$ 时 $i mod a = i > x$,当 $a le i le 2x$ 时 $ i mod a = i - a < x$
因此 $ a = min{ i : i mod a < x mod a} $
以上是关于CF 1103B Game with modulo的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces1103 B. Game with modulo(取模性质,二分)