[P1908]逆序对

来源:互联网 发布:snmp采集哪些数据 编辑:程序博客网 时间:2024/05/16 17:10

原题链接

有哪里不太对劲?
虽然是过了
但是好像……
emm……

#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>#include<cmath>#include<queue>#include<vector>#include<climits>#include<string>#include<cstdlib>#include<ctime>#define MOD 1000000007#define LL long longusing namespace std;int n,a[40005],b[9999999],ans,maxn;void add(int x){    int i;    for(i=x;i>=1;i-=(i&(-i)))        b[i]++;}int sum(int x){    int t=0,i;    for(i=x;i<=maxn;i+=(i&(-i)))        t+=b[i];    return t;}int main(){    int i;    scanf("%d",&n);    for(i=1;i<=n;i++)    {        scanf("%d",&a[i]);        maxn=max(a[i],maxn);        add(a[i]);        ans+=sum(a[i]+1);    }    printf("%d",ans);    return 0;}
原创粉丝点击