【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\}\)。
否则,直接特判即可。

浙公网安备 33010602011771号