035966_L3 @ 2022-06-03 17:37:44
下面这段
#include<bits/stdc++.h>
#define int long long
using namespace std;
queue<long long>q1,q2;
long long a[530012],tmp[530012];
int ms(int l,int r)
{
if(r-l==1) return (a[l]>a[r]);
long long ans=0;
ans+=ms(l,(l+r)/2);
ans+=ms((l+r)/2+1,r);
for(int i=l;i<=r;i++)
tmp[i]=a[i];
sort(tmp+l,tmp+((l+r)/2+1));
sort(tmp+((l+r)/2+1),tmp+r+1);
for(int i=l;i<=(l+r)/2;i++)
q1.push(tmp[i]);
q1.push(2147483647);
for(int i=(l+r)/2+1;i<=r;i++)
q2.push(tmp[i]);
q2.push(2147483647);
for(int i=(l+r)/2+1;i<=r;i++)
{
while(q1.front()<=q2.front()) q1.pop();
ans+=q1.size()-1;
q2.pop();
}
while(!q1.empty()) q1.pop();
while(!q2.empty()) q2.pop();
return ans;
}
signed main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++)
scanf("%lld",&a[i]);
for(int i=n+1;i<=524288;i++)
a[i]=2147483646;
cout<<ms(1,524288);
return 0;
}
by chlchl @ 2022-06-30 13:03:46
我归并可以 AC 啊……要不您检查一下您的代码常数?