第一次敲树状数组  因为一个小错误 wa了 n 多遍  终于ac  太不容易了

/*************************************************************************
> Author: xlc2845 > Mail: xlc2845@gmail.com
> Created Time: 2013年11月07日 星期四 11时05分22秒
************************************************************************/ #include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm>
#include <queue>
//#define lowbit(x) ((x)&(-(x)))
#define LL long long
#define maxn 20010
using namespace std;
int a[100010], n, num[maxn];
LL c[maxn], d[maxn];
int lowbit(int x)
{
return x&(-x);
} int sum(int x)
{
int ret = 0;
while(x > 0)
ret += a[x], x -= lowbit(x);
return ret;
} void add(int x, int d)
{
while(x <= 100010)
a[x] += d, x += lowbit(x);
} void init()
{
memset(c, 0, sizeof(c));
memset(d, 0, sizeof(d));
memset(a, 0, sizeof(a));
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
init();
scanf("%d",&n);
for(int i = 1; i <= n; i++)
{
scanf("%d",&num[i]);
add(num[i], 1);
c[i] = sum(num[i]-1);
}
memset(a, 0, sizeof(a));
for(int i = n; i >= 1; i--)
{
add(num[i], 1);
d[i] = sum(num[i]-1);
}
LL sum = 0;
for(int i = 1; i <= n; i++)
sum += c[i]*(n-i-d[i])+(i-c[i]-1)*d[i];
printf("%lld\n",sum);
}
return 0;
}

LA 4329的更多相关文章

  1. ACM-ICPC LA 4329 Ping pong(树状数组)

    https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_probl ...

  2. LA 4329 Ping pong 树状数组

    对于我这样一名脑残ACMer选手,这道题看了好久好久大概4天,终于知道怎样把它和“树状数组”联系到一块了. 树状数组是什么意思呢?用十个字归纳它:心里有数组,手中有前缀. 为什么要用树状数组?假设你要 ...

  3. BIT LA 4329 Ping pong

    题目传送门 题意:训练指南P197 分析:枚举裁判的位置,用树状数组来得知前面比它小的和大的以及后面比它小的和大的,然后O (n)累加小 * 大 + 大 * 小 就可以了 #include <b ...

  4. LA 4329 ping-pong树状数组

    题目链接: 刘汝佳,大白书,P197. 枚举裁判的位置,当裁判为i时,可以有多少种选法,如果已经知道在位置i之前有ci个数比ai小,那么在位置i之前就有i-1-ci个数比ai大. 在位置i之后有di个 ...

  5. LA 4329 (树状数组) Ping pong

    第一次写树状数组,感觉那个lowbit位运算用的相当厉害. 因为-x相当于把x的二进制位取反然后整体再加上1,所以最右边的一个1以及末尾的0,取反加一以后不变. 比如1000取反是0111加一得到10 ...

  6. LA 4329(树状数组)

    题目描述: N <tex2html_verbatim_mark>(3N20000) <tex2html_verbatim_mark>ping pong players live ...

  7. LA 4329 BIT 分治

    #include <cstdio> #include <queue> #include <cstring> #include <iostream> #i ...

  8. LA 4329 乒乓比赛

    https://vjudge.net/problem/UVALive-4329 题意: 一条大街上住着n个兵乓球爱好者,经常组织比赛切磋技术.每个人都有一个不同的技能值ai.每场比赛需要3个人:两名选 ...

  9. LA 4329 Ping pong (树状数组)

    题意:从左到右给你n个不同的数值,让你找出三个数值满足中间的数值在两边的数值之间的个数. 析:题意还是比较好理解的,关键是怎么求数量,首先我们分解一下只有两种情况,一个是左边<中间<右边, ...

随机推荐

  1. dicom格式文件 界定标识符的处理

    转自:http://www.cnblogs.com/assassinx/archive/2013/05/18/3084854.html 说到底无非几个事情 :1传输语法确定 2数据元素读取 3 7fe ...

  2. 异常getaddrinfo enotfound

    在看NodeJS开发指南这本书时,书中的一个例子,讲解http.request的.代码如下: var http = require('http'); var querystring = require ...

  3. Java web的读取Excel简单Demo

    目录结构: Data.xls数据:   后台页面: GetExcelData.java       public void doGet(HttpServletRequest request, Http ...

  4. vs2010 配置OpenGL

    为了之后的项目学习,需要学习OpenGL.在此进行下记录,方便查询. 准备工作: 到https://www.opengl.org/resources/libraries/glut/glutdlls37 ...

  5. ARP协议详解

    ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...

  6. js设计模式(4)---组合模式

    0.前言 今天是建党节,新疆那边又开始了闹腾.作为立志成为码农的我,现在已经从一个大愤青淡化为一个小愤青,对这些国家民生大事不在血气喷发,转而把经历发泄在技术问题上面,因而在扯一篇随笔吧,把无处发泄的 ...

  7. DevExpress学习笔记1-ProductsDemo.Win

    最近在学习ProductsDemo.Win,有一些体会记录下来,大家分享: 在Contacts模块: 在Private Sub UpdateCurrentContact()过程添加一句:InitInd ...

  8. win7 IIS 7.5 HTTP 错误 404.3 - Not Found

    HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决这个问题你只需要,打开控制面 ...

  9. crontab的应用

    当我们需要定时执行某个系统内的php脚本程序时,可以这样设置crontab * 19 * * * /usr/local/php/bin/php /var/www/test.php 此处表示调用php( ...

  10. 下拉刷新--第三方开源--PullToRefresh

    效果预览图: 下载地址:https://github.com/chrisbanes/Android-PullToRefresh activity_main.xml: <RelativeLayou ...