hdu2492

来源:互联网 发布:淘宝网板鞋后底女鞋 编辑:程序博客网 时间:2024/06/07 00:20
#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<cmath>#define MAX 20010using namespace std;long long a[MAX];long long c[100005];long long d[MAX];long long f[MAX];long long t[MAX];long long h[MAX];long long lowbit(long long x){    return x&-x;}void update(long long x,long long n){    while(x<=n)    {        c[x]++;        x+=lowbit(x);    }}long long query(long long x){    long long ans=0;    while(x>0)    {        ans+=c[x];        x-=lowbit(x);    }    return ans;}int main(){    long long x,sum,m;    int ca,n,i;    scanf("%d",&ca);    while(ca--)    {        memset(c,0,sizeof(c));        m=0;        scanf("%d",&n);        for(i=0;i<n;i++)        {            scanf("%I64d",&a[i]);            m=max(m,a[i]);        }        m=m+1;        for(i=0;i<n;i++)        {            update(a[i],m);            d[i]=query(m)-query(a[i]);            f[i]=query(a[i]-1);        }        memset(c,0,sizeof(c));        for(i=n-1;i>=0;i--)        {            update(a[i],m);            t[i]=query(m)-query(a[i]);            h[i]=query(a[i]-1);        }        sum=0;        for(i=0;i<n;i++)          sum+=d[i]*h[i]+f[i]*t[i];        printf("%I64d\n",sum);    }}

原创粉丝点击