poj 3928 Ping pong 树状数组
2015-07-27 13:32
295 查看
[code]#include<stdio.h> #include<string.h> #include<algorithm> 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; }
相关文章推荐
- Integer 变量A,B, 在不声明其它变量的情况下,将他们的值交换,如:A:=1; B:=2; 交换后, A=2, B=1,
- CAS4搭建HTTP环境
- linux修改文件权限
- Course Schedule II
- poj 3928 Ping pong 树状数组
- LeetCode Best Time to Buy and Sell Stock 买卖股票的最佳时机 (DP)
- linux初学(九)之linux文件系统
- 九度oj 1124
- linux初学(八)之使用fdisk进行磁盘管理
- poj 2251 Dungeon Master(三维BFS)(中等)
- [单调队列] hdu 3415 Max Sum of Max-K-sub-sequence
- 【leetcode-16】3Sum Closest(java)
- 提高ios开发效率
- _CrtIsValidHeapPointer 跨dll接口参数数据传递问题
- 7.27计划
- javascript中的闭包
- Poj 1201 差分约束问题 详解
- hdu 3008 Warcraft
- HDU 5074 Hatsune Miku (动态规划)
- Spark Streaming 流计算优化记录(1)-背景介绍