传送门
思路
转化距离定义可知目标是求 Σ(ai*bi) 的最大值,这要求 a 列和 b 列以大小比较为相对顺序的序列完全相等。那么首先要得到两列的以大小比较为相对顺序的序列,一提到相对顺序就需要联想到离散化。离散化后,由于两个序列都是一个n的全排列,可以先把 ai 映射作 i ,a列转化为1到n的顺序排列,并对 b列也作相同映射。将b列转化为a列的最小步骤的实质是求解映射后的 b列中的逆序对(每一次交换,最多可以让序列中的逆序对减一,当序列中没有逆序对时,则b=a,那么最小操作数则为逆序对个数)。用归并排序求解b列的逆序对个数。
代码
#include
#include
#include