23年11月的AC代码 现在提交全WA 求助
  • 板块P1908 逆序对
  • 楼主Wind_love
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/7/8 08:30
  • 上次更新2024/7/8 10:20:44
查看原帖
23年11月的AC代码 现在提交全WA 求助
772368
Wind_love楼主2024/7/8 08:30

写的归并

#include<bits/stdc++.h>
using namespace std;
long long a[1145140];
long long t[1145140];
long long ans=0;
long long bing(long long l1,long long r1,long long l2,long long r2){
	memset(t,0,sizeof t);
	long long l=l1,r=l2;
	long long o=1;
	while(l<=r1&&r<=r2){
		if(a[l]>a[r]){
			ans+=r-o+1-l1;
			t[o++]=a[r];
			r++;
		}
		else{
			t[o++]=a[l];
			l++;
		}
	}
	while(l<=r1){
		t[o++]=a[l++];
	}
	while(r<=r2){
		t[o++]=a[r++];
	}
	for(long long i=l1,j=1;i<=r2;i++,j++){
		a[i]=t[j];
	}
}
void g(long long l,long long r){
	if(l>=r) return;
	long long mid=(l+r)>>1;
	g(l,mid);
	g(mid+1,r);
	bing(l,mid,mid+1,r);
}
int main(){
	long long n;
	cin>>n;
	for(long long i=1;i<=n;i++){
		cin>>a[i];
	}
	g(1,n);
	cout<<ans;
	return 0;
}
2024/7/8 08:30
加载中...