[1,3,7, 0,2,4,5,6,8,9] =>
[0,2,4,5,6,8,9, 1,3,7]
было 8 инверсий, становится 13, изменение на 5 (3*7-2*8)
[7,3,1, 0,2,4,6,8,9,5] =>
[0,2,4,6,8,9,5, 7,3,1]
было 14, становится 19, изменение на те же 5
(поскольку количество взаимных инверсий сохранено)
如果您的班次是
A,即A重新排列第- 个位置的零件V
然后,零件中的内部倒置
L保持在原位,零件中的内部倒置R保持在原位,零件之间的倒置则倒置。那些。如果存在K(A)相互反转,则对其进行纠正,但是,新的相互反转数量Len(L)*Len(R)-K(A),使得数量的变化为例子
剩下的;)预先计算每个索引处原始排列的左右部分相互反转的次数并保存,然后每个请求将在O(1)中处理