【CF1797C 题解】

题意

这是一道交互题。

定义一个位置 \((x, y)\),移动一步后的位置为 \((x\pm1,y\pm1)\)

你需要找到一个位置 \((x, y)\)

你至多进行 \(3\) 次询问,每次询问格式为 ? a b

交互库会返回 \((x, y)\to (a, b)\) 的最小移动步数。


题解

还是比较有趣的一题。

不难发现,交互库返回的是 \(\max\{\vert a-x\vert, \vert b-y\vert\}\)

我们先 ? 1 1,则知道了 \(d=\max\{a-1, b-1\}\)\(\max\{a, b\}=d+1\)

如果 \(d+1\le n\)\(d+1\le m\) 则询问 ? d+1 d+1,知道了 \(d'=\max\{d+1-(d+1), d+1-\min\{x, y\}\}=d+1-\min\{x, y\}\),即 \(\min\{x, y\}=d+1-d'\),接着继续询问 ? min{x, y} max{x, y},判断 \(x=\min\{x, y\}\) 还是 \(y=\min\{x, y\}\)

否则,直接特判即可。

代码。

posted @ 2023-04-10 21:45  hcywoi  阅读(51)  评论(0)    收藏  举报

Loading