蒟蒻求正序对板子求调
查看原帖
蒟蒻求正序对板子求调
494192
ChickenDrinkingMilk楼主2023/9/9 23:12
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int N=300000;
int n,a[N+5],vis[N+5],cnt=1;
void qsort(int l,int r){
	if (l==r) return;
	int mid=l+r>>1;
	qsort(l,mid),qsort(mid+1,r);
	int L=l,R=mid+1,vn=l;
	while (L<=mid&&R<=r){
		if (a[L]<=a[R]) cnt+=r-R+1,vis[vn++]=a[L++];
		else vis[vn++]=a[R++];
	}
	while (L<=mid) vis[vn++]=a[L++];
	while (R<=r) vis[vn++]=a[R++];
	for (int i=l;i<=r;i++) a[i]=vis[i];
}
int main(){
	cin>>n;
	for (int i=1;i<=n;i++) cin>>a[i];
	qsort(1,n);
	cout<<cnt;
}	

2023/9/9 23:12
加载中...