博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj 3928 Ping pong 树状数组
阅读量:5112 次
发布时间:2019-06-13

本文共 1012 字,大约阅读时间需要 3 分钟。

#include
#include
#include
using namespace std;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); } long long int 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;}

版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

转载于:https://www.cnblogs.com/xryz/p/4847889.html

你可能感兴趣的文章
hihocoder1187 Divisors
查看>>
Azure 托管镜像和非托管镜像对比
查看>>
js window.open 参数设置
查看>>
032. asp.netWeb用户控件之一初识用户控件并为其自定义属性
查看>>
Ubuntu下安装MySQL及简单操作
查看>>
前端监控
查看>>
clipboard.js使用方法
查看>>
移动开发平台-应用之星app制作教程
查看>>
leetcode 459. 重复的子字符串(Repeated Substring Pattern)
查看>>
伪类与超链接
查看>>
centos 7 redis-4.0.11 主从
查看>>
博弈论 从懵逼到入门 详解
查看>>
永远的动漫,梦想在,就有远方
查看>>
springboot No Identifier specified for entity的解决办法
查看>>
慵懒中长大的人,只会挨生活留下的耳光
查看>>
"远程桌面连接--“发生身份验证错误。要求的函数不受支持
查看>>
【BZOJ1565】 植物大战僵尸
查看>>
VALSE2019总结(4)-主题报告
查看>>
浅谈 unix, linux, ios, android 区别和联系
查看>>
51nod 1428 活动安排问题 (贪心+优先队列)
查看>>