【做题笔记】洛谷P1774最接近神的人

所谓最少操作次数,也就是求这个序列中逆序对的个数。

简易证明:

逆序对的定义:(i<j) ,且 (a_i>a_j)

若要使原序列不下降,也就是要给原序列从小到大排序。

那么题目要求求出最少的交换次数

要使交换次数最少,那么每次交换就是有意义的

要使每次交换有意义,也就是对于 (a_i,a_j) 而言,(a_i)(a_j) 前面且 (a_i) 大于 (a_j) 的时候,破坏了题目要求的单调性,也就要交换。

那么发现这个定义也就是逆序对的定义。

End.

P.S. 如果不知道怎么快速求逆序对可以看一下这里→https://www.cnblogs.com/BlueInRed/p/12404511.html,代码改都不用改。

原文地址:https://www.cnblogs.com/BlueInRed/p/12404534.html