反手for循环 @ 2019-05-25 19:40:54
为何全部RE???
评测记录
by LB_tq @ 2019-05-25 19:42:12
看数据范围。。。 数组开小了
by 反手for循环 @ 2019-05-25 19:47:06
额,改了一下,终于过了。
#include<bits/stdc++.h>//排序模板 ,用排序做这题。
using namespace std;
long long a[1000000],s[1000000],n,i,ans;
inline int read()//我就不信我快读还不过。
{
char ch=getchar();
int x=0,f=1;
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}
while(ch>='0'&&ch<='9') x=x*10+(ch^48),ch=getchar();
return x*f;
}
void msort(int l,int r)//归并排序
{
if(l==r) return;
int mid=(l+r)/2;
msort(l,mid); msort(mid+1,r);
int i=l,k=l,j=mid+1;
while(i<=mid&&j<=r)
{
if(a[i]<=a[j]){s[k]=a[i];k++;i++;}
else{s[k]=a[j];k++;j++;ans+=mid-i+1;}
}
while(i<=mid) {s[k]=a[i];k++;i++;}
while(j<=r) {s[k]=a[j];k++;j++;}
for(int i=l;i<=r;i++) a[i]=s[i];
}
int main()
{
cin>>n;
for(i=1;i<=n;i++) a[i]=read();
msort(1,n);
cout<<ans<<endl;
return 0;
}
by 反手for循环 @ 2019-05-25 19:49:05
@LB_tq 感谢大神 ,外加评测记录。