求调,玄关,过不了阳历
  • 板块P1908 逆序对
  • 楼主CCF___NOI
  • 当前回复5
  • 已保存回复5
  • 发布时间2025/8/30 12:51
  • 上次更新2025/8/30 20:07:00
查看原帖
求调,玄关,过不了阳历
1394890
CCF___NOI楼主2025/8/30 12:51
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[1000001],b[1000001],ans,sum,x,y;
void  gb(int l,int r){
	if(l==r)    return ;
	int L=l,R=r,mid=(l+r)/2;
	gb(l,mid),gb(mid+1,r);
	for(int i=l;i<=r;i++){
		if(L>mid){
			b[i]=a[R++];
		}else{
			if(R>=r){
				b[i]=a[L++];
			}else{
				if(a[L]<=a[R]){
					b[i]=a[L++];
				}else{
					b[i]=a[R++];
					ans+=mid-L+1;
				}
			}
		}
	}
	for(int i=l;i<=r;i++){
		a[i]=b[i];
	}
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	gb(1,n);
	cout<<ans;
	return 0;
} 

2025/8/30 12:51
加载中...