结论 ARC136B B - Triple Shift

  1. swap(a[i],a[i+1]) 一定能生成所有排列,先交换使得第一个固定,再使得第二个……

  2. 题目中的操作就是 swap(a[i],a[i+1]),swap(a[i],a[i-1]),考虑 a 中没有相同的数的话,逆序对奇偶性不变,然后可以类似 1 的固定方法,因为奇偶性不变,自然最后 2 个归位。

swap(a[i],a[i+1]),swap(a[i],a[i-1]) 能生成所有逆序对奇偶性与 a 相同的排列,假如 a 中有相同的元素,那么可以改变奇偶性,也就是能生成所有排列。

posted @ 2022-03-07 10:41  FxorG  阅读(83)  评论(0编辑  收藏  举报