今天 C 题我有种玄学做法,过了,应该是正确的,希望能有人告诉我对不对,就是:
首先,先用和这题 Subtask4 n2 的做法一样的方法跑一遍,记录 answer
如果 answer≤510000,没事儿了
否则先把 stack 里的全放到 queue 里,然后再把 queue 的全放到 stack 里(2n 次操作),再做 n2 的做法,相当于把这个序列倒过来了
正着、倒着每一次总共正好循环移位 n−i−1 次,两种情况都要再花一次把目标元素放进去,操作个数 2(n−i−1)+1+1=2n−2i,于是总操作次数为 2n2−2×2n(n+1)+2n=n2+n,于是必有一种操作次数 ≤2n2+n≤21001000=500500次,而题目给了 510000 次,足够完成操作
希望能有人给出 hack 或更严谨的证明(不自信。。。)