溪水瑶 @ 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 Y15BeTa @ 2019-08-07 15:50:21
数组开大了QwQ
by 溪水瑶 @ 2019-08-07 15:51:29
@TwxAqu 我还以为小了呢
by 溪水瑶 @ 2019-08-07 15:53:04
N=50010都是re的啊
by 溪水瑶 @ 2019-08-07 15:59:39
各位大佬救救我呗QAQ
by la_un_ty @ 2019-08-07 15:59:57
@溪水瑶
我感觉应该给x&-x
加个括号
by 溪水瑶 @ 2019-08-07 16:00:42
@我不是人造革 为啥要括号qwq
by 溪水瑶 @ 2019-08-07 16:01:32
而且书上的也没加的呀
by yu__xuan @ 2019-08-07 16:03:07
离散化???
by la_un_ty @ 2019-08-07 16:04:26
emmmm
by 溪水瑶 @ 2019-08-07 16:04:32
@yu__xuan 我只知道是树状数组找的逆序对(根本不知道啥是离散化QAQ)