HDU2492
来源:互联网 发布:收单数据保密协议 编辑:程序博客网 时间:2024/05/23 01:56
AC代码:
#include<cstdio>#include<cstring>#include<cmath>#include<algorithm>#include<iostream>using namespace std;const int ma = 100000;int m[ma];int lmax[ma],lmin[ma], rmax[ma], rmin[ma];int cnt[ma<<2];int lowbit(int t){ return t & -t;//取出t中的最后一个1}int sum(int end){ int s = 0; while(end > 0){ s += cnt[end]; end -= lowbit(end); } return s;}void update(int pos){ while(pos <= ma){ cnt[pos]++; pos += lowbit(pos); }}int main(){ int t, n; scanf("%d", &t); while(t--){ scanf("%d", &n); for(int i =1; i<=n; i++) scanf("%d", &m[i]); memset(lmax, 0, sizeof(lmax)); memset(lmin, 0, sizeof(lmin)); memset(rmax, 0, sizeof(rmax)); memset(rmin, 0, sizeof(rmin)); memset(cnt, 0, sizeof(cnt)); for(int i =1; i<=n; i++){ update(m[i]); lmax[i] = sum(ma) - sum(m[i]);//计算左边大的个数 lmin[i] = sum(m[i]-1);//计算左边小的个数 } memset(cnt, 0, sizeof(cnt)); for(int i=n; i>=1; i--){ update(m[i]); rmax[i] = sum(ma) - sum(m[i]);//计算右边大的个数 rmin[i] = sum(m[i]-1);//计算右边小的个数 } long long ans=0; for(int i=1; i<=n; i++) { ans += lmax[i]*rmin[i] + lmin[i]*rmax[i]; } printf("%I64d\n", ans); } return 0;}
0 0
- hdu2492
- HDU2492
- HDU2492 树状数组
- hdu2492 (树状数组)
- HDU2492 Ping pong
- C - Ping pong hdu2492
- 线段树 HDU2492 Ping pong
- hdu2492 Ping pong (树状数组)
- hdu2492(树状数组+离线处理)
- 树状数组 hdu2492 Ping pong
- 树状数组终结篇(十四)之hdu2492
- hdu2492 Ping pong 树状数组BIT
- hdu2492 数状数组或者线段树
- HDU2492 Ping pong 树状数组求逆序数
- 数据结构之并查集(hdu1988 hdu2492)
- 09-09 HDU_Steps5.3 树状数组,LCA HDU1166 HDU2492 HDU3584 HDU2586 HDU2874 HDU3486 HDU2688
- Spring+CXF开发WebService
- HDU 1300 Pearls(DP 珠宝店进货问题)
- ok6410 官方的驱动卸载
- 虚函数 与 纯虚函数 区别
- 物化视图学习
- HDU2492
- CSS Float Theory: Things You Should Know
- 视频监控之 关键帧
- 多变量条件概率等价式推导
- 【BZOJ】【P2733】【HNOI2012】【永无乡】【题解】【启发式合并】
- c#程序员如此堕落
- 常用的正则表达式
- ubuntu ip internet setting after installation
- 2014/08/23——OJ及相关网站打开速度很慢,训练计划login直接error!