在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们就称为一个逆序。一个排列中逆序的总数就称为这个排列的逆序数。
如2 4 3 1中,2 1,4 3,4 1,3 1是逆序,逆序数是4。给出一个整数序列,求该序列的逆序数。
Input
第1行:N,N为序列的长度(n <= 50000)
第2 - N + 1行:序列中的元素(0 <= Aii <= 10^9)
Output
输出逆序数
Sample Input
4
2
4
3
1
Sample Output
4
对于这个题他就是一个典型的模板,我们理解了最好不理解就记下来也行(我觉得还是理解吧)毕竟这个还是基础的
#include <iostream> using namespace std; int a[500050]; int b[500050]; long long cnt;//注意次数可能爆掉 void merge(int *a, int first, int mid, int end) { int i, x; int y = mid+1; i = first; x = first; wh