poj 3928 Ping pong 树状数组

;int n,c[20000+5],d[20000+5],a[20000+5],p[100000+5];int sum(int x){int ret=0;while(x>0){ret+=p[x];x-=x&(-x);}return ret;}void add(int x){while(x<100000+5){p[x]+=1;x+=x&(-x);}}int main(){int _,i,j;scanf(“%d”,&_);while(_–){scanf(“%d”,&n);for(i=1;i<=n;i++){scanf(“%d”,&a[i]);}memset(p,0,sizeof(p));for(i=1;i<=n;i++){add(a[i]);c[i]=sum(a[i]-1);}memset(p,0,sizeof(p));for(i=n;i>=1;i–){add(a[i]);d[i]=sum(a[i]-1);}ans=0;for(i=1;i<=n;i++){ans+=c[i]*(n-i-d[i])+d[i]*(i-c[i]-1);}printf(“%lld\n”,ans);}return 0;}

,影子依旧可以相亲相爱。哪一块骨骼最温暖,总能一击即中。

poj 3928 Ping pong 树状数组

相关文章:

你感兴趣的文章:

标签云: