uva 1428 - Ping pong
树状数组,把他们的技能值作为轴;
首先按照编号从小到大插入值,这样就可以得到,技能值比当前小的人数;
然后按照编号从大到小再插一遍;
代码:
#include<cstdio>
#include<cstring>
#define maxn 20005
using namespace std; int a[maxn],c[];
int l[maxn],r[maxn];
int lowbit(int x){return x&-x;}
void add(int x,int d){while(x<=){c[x]+=d,x+=lowbit(x);}}
int sum(int x)
{
int ret=;
while(x>){ret+=c[x],x-=lowbit(x);}
return ret;
} int main()
{
int t,n;
scanf("%d",&t);
while(t--)
{
memset(c,,sizeof c);
memset(l,,sizeof l);
memset(r,,sizeof r);
scanf("%d",&n);
for(int i=;i<=n;i++)
{
scanf("%d",&a[i]);
add(a[i],);
l[i]=sum(a[i]-);
}
memset(c,,sizeof c);
for(int i=n;i>=;i--)
{
add(a[i],);
r[i]=sum(a[i]-);
}
long long ans=;
for(int i=;i<=n;i++)
ans+=l[i]*(n-i-r[i])+(i-l[i]-)*r[i];
printf("%lld\n",ans);
}
}
uva 1428 - Ping pong的更多相关文章
- UVA 1428 - Ping pong(树状数组)
UVA 1428 - Ping pong 题目链接 题意:给定一些人,从左到右,每一个人有一个技能值,如今要举办比赛,必须满足位置从左往右3个人.而且技能值从小到大或从大到小,问有几种举办形式 思路: ...
- HDU 2492 Ping pong (树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Ping pong Problem Description N(3<=N<=2000 ...
- UVALive 4329 Ping pong
Ping pong Time Limit: 3000MS Memory Limit: Unknown 64bit IO Fo ...
- POJ 3928 Ping pong(树状数组)
Ping pong Time Limit: 1000MS ...
- LA4329 Ping pong(树状数组与组合原理)
N (3N20000)ping pong players live along a west-east street(consider the street as a line segment). E ...
- Ping pong
Ping pong Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...
- POJ 3928 Ping pong
题目链接:http://poj.org/problem?id=3928 乒乓比赛,有N个人参加,输入每个玩家的技能等级,对每个人设置一个特定ID和一个技能值,一场比赛需要两个选手和一个裁判,只有当裁判 ...
- Frequent values && Ping pong
Frequent values 题意是不同颜色区间首尾相接,询问一个区间内同色区间的最长长度. 网上流行的做法,包括翻出来之前POJ的代码也是RMQ做法,对于序列上的每个数,记录该数向左和向右延续的最 ...
- 【暑假】[实用数据结构]UVAlive 4329 Ping pong
UVAlive 4329 Ping pong 题目: Ping pong Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: % ...
随机推荐
- onInterceptTouchEvent和onTouchEvent调用时序
onInterceptTouchEvent()是ViewGroup的一个方法,目的是在系统向该ViewGroup及其各个childView触发onTouchEvent()之前对相关事件进行一次拦截,A ...
- careercup-链表 2.4
2.4 编写代码,以给定值x为基准将链表分割成两部分,所有小于x的结点排在大于或等于x的结点之前. 思路:将小于的结点还是保存在原来的链表中,将大于等于x的结点加入一个新的链表,最后将这两个链表链接起 ...
- 高效 jquery 的奥秘
当你准备使用 jQuery,我强烈建议你遵循下面这些指南: 1. 缓存变量 DOM 遍历是昂贵的,所以尽量将会重用的元素缓存. // 糟糕 h = $('#element').height(); $( ...
- Linux下搭建Oracle11g RAC(7)----安装Oracle 软件
从此步骤开始,我们正式安装oracle软件: ① 以oracle用户登录图形界面,执行/home/oracle/database/runInstaller,进入OUI的图形安装界面: ② 进入OUI安 ...
- datebox清除按钮,datebox加上清除按钮,easyui datebox加上清除按钮
datebox加上清除按钮,easyui datebox加上清除按钮 >>>>>>>>>>>>>>>>& ...
- 微信分组群发图文40152,微信分组群发图文invalid group id hint
微信分组群发40152,微信分组群发invalid group id hint >>>>>>>>>>>>>>> ...
- Java SE (1)之 JFrame 组件 FlowLayout 布局
package com.sunzhiyan; import java.awt.*; import java.awt.event.*; import javax.swing.*; public clas ...
- C# 重写思想
问题一:什么是重写? “重写”父类方法就是修改它的实现方式或者说在子类中对它进行重新编写. 问题二:为什么要重写父类的方法 通常,子类继承父类的方法,在调用对象继承方法的时候,调用和 ...
- [GDI+] C# ImageDown帮助类教程与源码下载 (转载)
点击下载 ImageDown.zip 1.下载图片到本地代码如下 /// <summary> /// 编 码 人:苏飞 /// 联系方式:361983679 /// 更新网站:[url=h ...
- 7z 压缩命令行工具
命令行压缩解压一 7z 1) 简介7z,全称7-Zip, 是一款开源软件.是目前公认的压缩比例最大的压缩解压软件.主页:http://www.7-zip.org/中文主页:http://7z.spar ...