Interacdive Problem

 

https://codeforces.com/contest/1624/problem/F

题意简述

这是一道交互式题目。

有一个数 $x$ 和一个数 $n$ 其中 $1\le x < n$

你可以进行如下的询问:

  • + c 将 $x$ 的值变为 $x + c$ 其中 $1\le c < n$ 然后返回一个值 $\lfloor\frac{x}{n}\rfloor$

如果你在十次之内猜到的话则输出 $x$ 即可。

思路

由于我们只能得到 $\lfloor\frac{x}{n}\rfloor$ 那么我们不妨用二分的想法来考虑这个题目

对于我们上一个得到的 $k = \lfloor\frac{x}{n}\rfloor$ 我们可以分析出我们需要的数值一定出现在[k * n,(k + 1) * n - 1]

假若范围已经被我们更加的精确到了 [l,r] 这个区间上。

alt

那么如上如图所示,我们可以通过增加 (k+n) * n - (l + r) / 2 的方式将我们的区间[l,r] 移动到 [l',r'] 上去。

此时我们得到一个 $\lfloor\frac{x}{n}\rfloor$ 通过这个值再选择是省去左边界还是右边界。

一步步划分最后就出来答案了。

code

algorithm