摘要:
什么是逆序对 逆序对就是如果$i>j&& a[i] <a[j]$,这两个数就是一个逆序对。其实换句话说,找到排在自己前面比自己大的数的个数。 给定一个$n$个数的序列,求解序列中逆序对的个数$n \leq 5 \times 105,a[i]\leq 109$。 输入样例 6 5 4 2 6 3 1 阅读全文
摘要:
归并排序 归并排序(Merge sort)是建立在归并操作上的一种有效排序算法,它是采用分治算法的一个典型的应用。时间复杂度为$O(NlogN)$,代价是需要额外的内存空间。 算法理解 我们可以先看一个图 归并排序的思想:我们先对输入数组一直进行对半拆分,直到区间内只有一个元素的时候,一个元素肯定是 阅读全文
摘要:
离散化有很大的局限性(目前以个人认知来说),几乎只适合在树状数组求逆序对使用。 离散化概念 离散化:把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 通俗的说,离散化是在不改变数据相对大小的条件下,对数据进行相应的缩小。 离散化实现 建立一个结构体包含$val$和$id$,$va 阅读全文