hdu2492 Ping pong

题意:一群乒乓爱好者居住在一条直线上,如果两个人想打比赛需要一个裁判,裁判的 位置 必须在两者之间 ,裁判的能力也必须不大于 参赛者最大的,不小于参赛者最小的

白皮的题解:考虑 第 i 个 为裁判 的情况 如果 左边 比 a[i] 小的 人数 为 c[i],则 有  i-c[i]-1 个人 比 a[i] 大,同样 右边 比 a[i] 小 的人数为 d[i] ,则比a[i]大的人为 n - i - d[i];

则方案 为 d[i]*( i - c[i] - 1 ) + c[i] * (n - i - d[i])

用 x[ a[i] ] 表示 比 a[i] 小的个数,这就涉及到了 树状数组

代码……

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <map>
#include <queue>
#include <stack>
#include <set>
#include <string>
using namespace std;
typedef long long ll;
const double ESP = 10e-8;
const int MOD = 1000000007;
typedef long long LL;
const int MAXN = 20000 + 10;
const int MAXA = 100000 + 10;
int bit[MAXA];
int c[MAXN];
int d[MAXN];
int arr[MAXN];int sum(int i){int s = 0;while(i > 0){s += bit[i];i -= i&-i;}return s;
}void add(int i,int x){while(i < MAXA){bit[i] += x;i += i&-i;}
}
int main(){
//    freopen("input.txt","r",stdin);int t;scanf("%d",&t);while(t--){int n;scanf("%d",&n);memset(bit,0,sizeof(bit));memset(c,0,sizeof(c));memset(d,0,sizeof(d));for(int i = 1;i <= n;i++){scanf("%d",&arr[i]);c[i] = sum(arr[i]);add(arr[i],1);}memset(bit,0,sizeof(bit));for(int i = n;i > 0;i--){d[i] = sum(arr[i]-1);add(arr[i],1);}LL ans = 0;for(int i = 1;i <= n;i++){ans += c[i]*(n-i-d[i]) + d[i]*(i-c[i]-1);}printf("%I64d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/hanbinggan/p/4681048.html

hdu2492 Ping pong相关推荐

  1. POJ 3928 amp; HDU 2492 Ping pong(树阵评价倒数)

    主题链接: PKU:http://poj.org/problem?id=3928 HDU:http://acm.hdu.edu.cn/showproblem.php?pid=2492 Descript ...

  2. Ping pong【树状数组】

    Ping pong UVALive - 4329 题目传送门 题目大意:一条大街上住着n个乒乓球爱好者,经常组织比赛切磋技术.每个人都有一个不同的技能值ai.每场比赛需要三个人:两名选手,一名裁判.他 ...

  3. ping/pong模式_PING的完整形式是什么?

    ping/pong模式 PING:数据包InterNet Groper (PING: Packet InterNet Groper) In the sector of networking of co ...

  4. Unity3D 4.x怎样实现动画的Ping Pong效果

    近期在看Unity官方的Stealth项目教学视频.视频使用的是Unity旧的版本号,而我如今正在使用的是Unity 4.5,动画系统的操作全然不同了.依照视频的方式根本无法设置动画的Ping Pin ...

  5. [UVALive - 4329] Ping pong 树状数组入门

    题目链接:Ping pong 题意 给你n个数,你从中取3个数,要求中间的数字大小在两边数字之间.问你总共有多少种取法. 题解 这个题首先需要分析转化. 假设第i个人作为中间数 a1-ai−1有ci个 ...

  6. HDOJ 2492 Ping pong 线段树+离散化

    //2492 Ping pong 线段树+离散化 /* 题意: 有一陀人从左到右排成一排,每个人有一个唯一的技能值,每个人都找其他人比赛, 比赛前要再找一个人做裁判,裁判的技能值不能比这两个人都高,也 ...

  7. go-gorilla的ping pong

    业务需求,ping每隔60秒执行一次,ping两次后,没有得到pong的消息,自动切断client. pongTime=180 * time.Second pingTime=60 * time.Sec ...

  8. ping pong buffer

    Ping pong buffer is a buffer used in a transmission that contains two separate buffers, while one bu ...

  9. Ping Pong Buffer 双缓冲 C++代码学习

    1.Ping Pong Buffer 原理分析 基本原理如上图所示,当设备有数据来时,先放入缓冲区1 然后将缓冲区1的数据放入缓冲区2,这时缓冲区1可接收下次数据.工作区可从缓冲区2拿数据 2.C++ ...

  10. 心跳PING PONG用法

    写PHP代码十多年了,没有接触过这个概念.只是知道MySQL有PING. 后来用其他语言才偶然接触到心跳的规则,请求参数发送PING,返回内容为PONG表示这个服务可用,算是一个不成文的规范.

最新文章

  1. 浅谈域名发散与域名收敛
  2. linux lvm 简介之二 扩充空间
  3. accounts/login/?next=/account/password-change/
  4. Java 虚拟机运行时数据区
  5. .NET 4.0中的泛型协变和反变
  6. .Net报文请求转义
  7. 链表排序 Sort List
  8. 洛谷OJ P1802 5倍经验日 动态规划
  9. 《集成电路制造工艺与工程应用》目录
  10. 融资轮数划分 天使轮 种子轮 preA A A+ B轮 C轮
  11. 【阅读笔记】Federated Learning for Privacy-Preserving AI
  12. 解除百度网盘下载限速
  13. 【关于为什么要刷力扣的思考】记第二次周赛AK
  14. JDK源码分析 FutureTask源码分析
  15. 上传文件到服务器打不开,关于软件上传到服务器后出现图片打不开的解决方法...
  16. 1008.顺序结构习题:摄氏温度转换为华氏温度和绝对温度
  17. mysql升序降序关键字(DESC降序,ASC升序)
  18. antv x6 连接桩
  19. 优优聚电商:商品转化率怎么算
  20. 30岁的男人怎么样才算成功呢?

热门文章

  1. UltraEdit打开就报错,文件找不到
  2. JNI中访问JList的代码
  3. systemback慎用:安装后无法启动
  4. 南半球左撇子的人是否多一些
  5. VS error C2471: 无法更新程序数据库vc90.pdb的解决办法
  6. C++11强类型枚举——枚举类
  7. c语言三位数倒序,C语言求助!一个三位数的逆序数,总是编不对
  8. matlab导弹追踪问题垂直逃逸,综合程序设计 导弹追踪问题 (matlab)
  9. crontab 日志_linux计划任务-单次任务(at)与循环任务(crontab)
  10. ulimit和core文件的使用方法