考虑比赛整体难度,放过了 O(n2)O(n^2)O(n2) 的暴力做法。
考虑第一次操作,注意到序列 {ai}\{a_i\}{ai} 互不相同,不难发现把序列中最大值翻到前面最优。此段翻转后就不能再翻转,继续去翻后面序列的最大值即可,直到翻至序列结束。
寻找序列最大值,可以每次暴力的扫描序列,复杂度 O(n2)O(n^2)O(n2)。也可以排序,复杂度 O(nlogn)O(n \log n)O(nlogn);注意到值域不大,也可以使用桶排,复杂度 O(n)O(n)O(n)。
这里是代码
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户