Codeforces Global Round 9E. Inversion SwapSort(构造+分解问题)⭐⭐⭐⭐
传送门
首先你可以把所有a[i]离散化,得到相应的值(如果a中有x-1个不同的元素比这个ai小,离散值就为x)
这题的构造方法即为:从最后一个位置开始,依次往前解决所有的逆序对。
我们先考虑所有ai都不相同的简单清苦:
显然最后一个位置的值在经过调整后必须为最大的离散值n,如果它当前值为x,那么显然这个位置有n−xn-xn−x个逆序对。我们只需要把最后一个位置和它所有逆序对对应的另一个位置上的所有元素重新排列,使得最后一个位置上的值为n(逆序对对应的其他位置上一定有n),其他位置上的值依然符合原来的大小关系
原创
2020-07-06 12:07:55 ·
196 阅读 ·
0 评论