摘要: 题意:对长度为 $n$($n \leq 2×10^5$ 且 $2 \nmid n$)的排列进行奇偶排序,求轮数。奇数轮对奇数位、偶数轮对偶数位,若前数大于后数则交换。思路:将排列转化为每行01串处理,求每行把后置0移到前端的轮数。设 $f_k$ 为第 $k$ 个0到正确位置轮数,$pos_k$ 为其位置,$f_k = \max(pos_k - k + [2 \nmid pos_k], f_{k - 1}+1)$ (特判 $pos_k = k$ )。只关心 $f_{cnt_0}$ ,可用线段树维护相关最大值,时间复杂度 $n \log n$ 。 阅读全文
posted @ 2025-10-19 19:59 wing_heart 阅读(7) 评论(0) 推荐(0)