题目分析:求逆序数,,,
思路:归并排序,关键在于统计逆序数,如果arr[i]>arr[j],则,ans+=m-i+1,
代码:
#include<iostream>
#include<cstdio>
using namespace std;
int n;
__int64 ans;
int arr[1001000],arr1[1001000];
void Merge(int s,int m,int t);
void MergeSort(int s,int t)
{
if(s==t)
{
arr1[s]=arr[s];
}
else
{
int m=(s+t)/2;
MergeSort(s,m);
MergeSort(m+1,t);
Merge(s,m,t);
}
}
void Merge(int s,int m,int t)
{
int i=s,j=m+1,k=s;
while(i<=m&&......
阅读全文