P1966 NOIP2013T2 火柴排队 求逆序对

题意:题目给出两个等长的序列,求交换两个序列的最小次数,使两个序列之间的值满足 sum(ai-bi)^2 最小;

解法:归并排序/树状数组+求逆序对

1.归并排序/树状数组:这两种方式都是可以较快地求出逆序对个数

2.求逆序对:因为只有当两个序列相对的数值都是其本序列中的相同等级的数,才能使等式最小。而移动两个序列的同一个数相当于没有移动,故题目可转化为将一个序列转变成为另一个序列的最小移动次数。此时不难看出 a序列转变为 b序列的最小移动次数就是 a的逆序对个数;

猜你喜欢

转载自www.cnblogs.com/nnezgy/p/11366297.html