为啥全re了啊

P1908 逆序对

溪水瑶 @ 2019-08-07 15:45:57

表示很蒙啊

#include<bits/stdc++.h>
using namespace std;
const int N=500010;
int n,a[N<<1],c[N<<1],ans;
int ask(int x)
{
    int sum=0;
    for(;x;x-=x&-x)sum+=c[x];
    return sum;
}
void add(int x,int y){
    for(;x<=N;x+=x&-x)c[x]+=y;
}
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i];
    for(int i=n;i;i--)
    {
        ans+=ask(a[i]-1);
        add(a[i],1);
    }
    cout<<ans<<endl;
}

by 溪水瑶 @ 2019-08-07 16:13:23

还是re的


by yu__xuan @ 2019-08-07 16:13:42

@溪水瑶 emmmm


by yu__xuan @ 2019-08-07 16:13:48

不知道


by 溪水瑶 @ 2019-08-07 16:14:48

@yu__xuan 别放弃孩子呀,说不定还能抢救的


by yu__xuan @ 2019-08-07 16:16:30

@溪水瑶 我也还是个孩子,qwq


by yu__xuan @ 2019-08-07 16:17:27

还是离散化一下吧,也不难写


by 溪水瑶 @ 2019-08-07 16:18:46

不会写呀


by la_un_ty @ 2019-08-07 16:30:53

@溪水瑶

在ask(a[i]-1)的时候炸了。因为a[i]是大于N的。


by la_un_ty @ 2019-08-07 16:32:24

查询和插入时均应为a[i]的位置。


by 溪水瑶 @ 2019-08-07 17:34:02

@我不是人造革 那该怎么改呢


上一页 |