I

来源:互联网 发布:软件著作权和发明专利 编辑:程序博客网 时间:2024/05/17 05:55

The Number of Inversions


For a given sequence A={a0,a1,...an1}A={a0,a1,...an−1}, the number of pairs (i,j)(i,j) where ai>ajai>aj and i<ji<j, is called the number of inversions. The number of inversions is equal to the number of swaps of Bubble Sort defined in the following program:

bubbleSort(A)  cnt = 0 // the number of inversions  for i = 0 to A.length-1    for j = A.length-1 downto i+1      if A[j] < A[j-1]swap(A[j], A[j-1])cnt++  return cnt

For the given sequence AA, print the number of inversions of AA. Note that you should not use the above program, which brings Time Limit Exceeded.

Input

In the first line, an integer nn, the number of elements in AA, is given. In the second line, the elements aiai (i=0,1,..n1i=0,1,..n−1) are given separated by space characters.

output

Print the number of inversions in a line.

Constraints

  • 1n200,0001≤n≤200,000
  • 0ai1090≤ai≤109
  • aiai are all different

Sample Input 1

53 5 2 1 4

Sample Output 1

6

Sample Input 2

33 1 2

Sample Output 2

2



这道题的坑点就是,下标以及统计次数sum都要用long类型,而不能用int,不然会WA,我感觉很奇怪,有的题20w的数据int可以放的下,有的却不行,希望大家知道原因的告诉我。

#include<iostream>using namespace std;typedef long long ll;const long maxn=200005;const ll maxv=1e9+5;long sum=0;void Merge(ll*a,long left,long mid,long right){    long n1=mid-left,n2=right-mid;    ll *L,*R;    L=new ll [n1+1];R=new ll [n2+1];    for(long i=0;i<n1;i++)        L[i]=a[left+i];    for(long j=0;j<n2;j++)        R[j]=a[mid+j];    L[n1]=R[n2]=maxv;    long m=0,n=0;    for(long i=left;i<right;i++)    {        if(L[m]<=R[n]){a[i]=L[m];m++;}        else        {            sum+=n1-m;            a[i]=R[n];            n++;        }    }}void Merge_Sort(ll*a,long left,long right){    if(left<right-1)    {        long mid=(left+right)/2;        Merge_Sort(a,left,mid);        Merge_Sort(a,mid,right);        Merge(a,left,mid,right);    }}int main(){    long n;    ll a[maxn];    cin>>n;    for(long i=0;i<n;i++)        cin>>a[i];    Merge_Sort(a,0,n);    cout<<sum<<endl;    return 0;}


阅读全文
'); })();
0 0
原创粉丝点击
热门IT博客
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 柴暖加热器 驻车加热器 低压加热器 辅助电加热器 石墨加热器 柴暖驻车加热器说明书 燃油加热器 厨房水龙头加热器 水龙头加热器费电吗 加热器怎么用 输液加热器 比来孚驻车加热器价格 油加热器厂家 驻车加热器什么牌子好 大功率电磁加热器 加热器怎么使用 电加热器生产厂家 驻车加热器价格 铝加热器 加热器图片 节能加热器 即热式加热器 远红外加热器 冷水加热器 空间加热器 电暖风机取暖器 加热套 注塑机加热圈 加热圈价格 电加热圈 陶瓷加热圈 高频加热圈 纳米加热圈 加热马桶圈 高温加热圈 弹簧加热圈 热流道弹簧加热圈 注塑机陶瓷加热圈 加热圈厂家 挤出机加热圈 铸铜加热圈