p1908,归并排序但是T飞了,玄关求条
  • 板块灌水区
  • 楼主Lovelace_qwq
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/10/4 22:04
  • 上次更新2024/10/5 09:07:22
查看原帖
p1908,归并排序但是T飞了,玄关求条
1223290
Lovelace_qwq楼主2024/10/4 22:04

原题链接

MyCode:My Code:

#include<bits/stdc++.h>
using namespace std;
int a[500005];
int c[500005];
long long n,ans;
void mergesort(int l,int r){
	memset(c,0,sizeof(c));
	if(l==r)return;
	int m=(l+r)/2;
	mergesort(l,m);
	mergesort(m+1,r);
	int p1=l,p2=m+1,cnt=l;
	while(p1<=m&&p2<=r){
		if(a[p1]<=a[p2])c[cnt++]=a[p1++];
		else c[cnt++]=a[p2++],ans+=m-p1+1;
	}
	while(p1<=m)c[cnt++]=a[p1++];
	while(p2<=r)c[cnt++]=a[p2++];
	for(int i=l;i<=r;i++)a[i]=c[i];
}
int main(){
	cin>>n;
	for(int i=1;i<=n;i++)cin>>a[i];
	mergesort(1,n);
	cout<<ans;
	return 0;
}

2024/10/4 22:04
加载中...