
归并排序
!
fffefw
这个作者很懒,什么都没留下…
展开
-
归并排序求逆序对
在一个数列a中,满足a[ i ]>a[ j ]并且i < j的数对就叫做逆序对。 如果a[ i ]<=a[ j ]就不会产生逆序对,如果a[ i ]>a[ j ]就会产生mid-i+1个逆序对,因为做归排的时候l~mid和mid+1~r都是已经排好序的,要是a[ i ]>a[ j ]那么a[ i+1 ]~a[ mid ]也就都大于a[ j]。 #...原创 2018-07-25 14:53:06 · 604 阅读 · 0 评论 -
Gym - 101853C Intersections(逆序对)
传送门 这题我写了好几天终于懂了,果然还是太菜了。 由题目给的样例可以看出,这个相交线的对数就是数第一行里每个数右边(左右都数会重复)有多少个数,在第二行里在该数的左边出现了,然后这样就可以转化为用逆序对求解了,首先在读入第一行的序列时,记录下每个 数对应的位置,然后在读入第二行的序列时,存入a数组的是这个数在第一行的位置。第一行里每个数右边有几个数,在第二行里在该数的左边出现了,...原创 2018-08-19 20:17:16 · 602 阅读 · 0 评论 -
ZOJ Monthly, June 2018 J - Good Permutation ZOJ - 4046 (逆序对+递推)
题意就是给一个1到n的排列,然后要你把这个排列变成一个好排列,(好排列的定义是这样的,k+1,k+2,...,n,1,...,k k+1取值从1变化到n),每次操作是交换两个相邻的数,问最小交换次数。很显然我们需要把原排列转换成n个好排列的最小交换次数都求出来,然后取最小值。显然变成1 2 3 4 。。。n 这个排列的最小交换次数就是原排列的逆序对数,然后2 3 4。。。。n 1 ...原创 2019-03-12 21:58:06 · 198 阅读 · 0 评论