P10887 【MX-S3-T3】「FeOI Round 1」再演
来补一步两三年前的题。
首先考虑这么一件事情,我第一步应该怎么操作?
我能得到的信息只有 \(res\) 这一个值,又由于我们需要知道大小关系,所以肯定跟 \(1\) 或者 \(2n\) 交换,你发现跟 \(2n\) 换答案就又乱了,于是你和 \(1\) 换。
此时我们发现一个很优美的事情,下一次答案必然为 \(res\) 所在对的另外一个值,此时我们将这个值和 \(2n\) 交换,那么 \(1\) 和 \(2n\) 就组成一对了,我们可以不断的递归这个操作,再删减掉一些区间极小时的无用操作,很容易将交互次数做到 \(2n - 3\)。
然后我们再通过交换反推回去即可。

浙公网安备 33010602011771号