码迷,mamicode.com
首页 > 其他好文 > 详细

CF 1103B Game with modulo

时间:2019-01-23 11:40:01      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:force   red   怎么   tps   ati   for   code   with   矛盾   

题目

$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

CF 1103B Game with modulo

标签:force   red   怎么   tps   ati   for   code   with   矛盾   

原文地址:https://www.cnblogs.com/Patt/p/10306884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!