为何全部RE???

P1908 逆序对

反手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 感谢大神 ,外加评测记录。


|