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} $


implementation

以上是关于CF 1103B Game with modulo的主要内容,如果未能解决你的问题,请参考以下文章

Codeforces1103 B. Game with modulo(取模性质,二分)

Codeforces Round #534 (Div. 2) D. Game with modulo(取余性质+二分)

[CF1539E]Game with Cards

[CF1221E]Game With String

[CF1221E]Game With String

CF1327C Game with Chips 题解