poj 3928
来源:互联网 发布:js 给div添加右键事件 编辑:程序博客网 时间:2024/05/19 18:42
#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>#include<vector>#include<map>#include<set>#include<stack>#include<queue>#include<algorithm>#include<utility>#include<sstream>#include<iostream>using namespace std;const int MAX=20010,M=100110;#define ll long long intll a[MAX],x[M],f[MAX],r[MAX],lowbit[M];void add(int k){ //向上更新 while(k<M){ x[k]++; k+=lowbit[k]; }}ll sum(int k){ //求前缀和 ll s=0; while(k>0){ s+=x[k]; k-=lowbit[k]; } return s;}int main(){ // freopen("in.in","r",stdin); int i,t,n; for(i=1;i<M;i++) lowbit[i]=i&-i; scanf("%d",&t); while(t--){ scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&a[i]); memset(x,0,sizeof(x)); for(i=0;i<n;i++){ f[i]=sum(a[i]-1); //查找之前能力值比第i个人小的人数 add(a[i]);//更新树 } memset(x,0,sizeof(x)); //同样的过程 for(i=n-1;i>=0;i--){ r[i]=sum(a[i]-1); add(a[i]); } ll ans=0; for(i=0;i<n;i++){ ans+=(f[i]*(n-i-1-r[i])+r[i]*(i-f[i])); } printf("%lld\n",ans); } return 0;}
0 0
- poj 3928
- poj 3928
- poj 3928
- poj 3928
- poj 3928
- POJ 3928
- POJ 3928 - 树状数组
- poj 3928 树状数组
- poj--3928--ping pong
- POJ-3928-Ping pong
- POJ 3928 Ping Pong
- POJ 3928 树状数组
- POJ:3928 序列
- POJ 3928 Ping pong
- poj 3928 Ping pong
- poj 3928 Ping pong
- poj 3928 树状数组
- POJ 3928 Ping pong
- httpd-2.2 配置及用法完全攻略
- sping配置quartz
- jquery有正确返回值但不执行success函数
- [leetcode]268. Missing Number
- Python学习笔记——模块
- poj 3928
- 超车
- CABAC 基础二-算术编码
- Iterator 迭代器模式--隐藏访问
- Leetcode-longest-substring-without-repeating-characters
- 用cmd命令连接MySQL数据库遇到的问题
- zynq学习04 zynq中PS通过MIO控制LED
- 要么读书,要么健身,要么恋爱(二)追风筝的人
- 网络基础概念(一)