//
//  E1 - Median on Segments (Permutations Edition).cpp
//  CF
//  谢谢大佬们分享思路
//  Created by Terry on 2018/7/11.
//  Copyright © 2018年 Terry. All rights reserved.
//
//  n个数字 不重复 给你一个m
//  然后问你有多少个区间的中位数是m
//  奇数区间选中间那个
//  偶数区间选中间偏左那个
//  因为是一个区间
//  肯定包含m这个数字
//  然后我们从m右边开始 记录从m到右边的每个数字这段区间比他大小的数字有多少个 用map记录一下
//  比如说
//  5 4
//  2 4 5 3 1
//  则
//  从4开始
//  2 4             5           3           1
//    mp[0] = 1    mp[1] = 1    mp[0] = 2   mp[-1] = 1;
// 4:mp[0] = 1   从4到4这个区间比4大的数或者小的数一共有0个
// 5:mp[1] = 1   从4到5这个区间比4大的数有一个 则 mp[1] = 1  然后我们就可以从左边去匹配啦
// 3:mp[0] = 2   从4到3这个区间 比4大的数有一个 比4小的数有一个 所以mp[0]++ mp[0]=2
// 1:mp[-1] = 1  从4到1这个区间 比4大的有一个 比4小的有一个 所以mp[-1] = 1 因为我们不是要去凑中位数嘛// 然后去从4开始去找左边 然后去匹配右边的map
// 4的话  4到4 比4大小的数一共有0个 则 ans += mp[0] ans = 2
//        mp[0] = 2  [4,4] [4,5,3]
//       然后ans += mp[1] 因为还有区间的个数是偶数的情况 偶数的意思就是 比m大的数比 比m小的数 多1
//          ans = 3
// 2     4到2 比4小的数有一个
//      ans += mp[- * -1] = mp[1]  因为左边比4小的数有一个 所以去4的右边找一个从4开始的区间比4大的数字只有一个的区间  ans = 4
//      然后去考虑偶数
//      ans += mp[-1*-1 + 1] = mp[2]
//      ans = 4
#include <stdio.h>
#include <map>
using namespace std;
typedef long long ll;
int n, m;
const int maxn = 2e5 + 5;
map<int, int>mp;
int pos, a[maxn];
int main() {scanf("%d%d", &n, &m);for(int i = 1; i <= n; i++) {scanf("%d", &a[i]);if(a[i] == m) pos = i;}int cnt = 0;for(int i = pos; i <= n; i++) {if(a[i] > m) cnt++;else if(a[i] < m) cnt--;mp[cnt]++;//记录右边比m大小的情况  从pos 到 i 这一段比m大小的情况}ll  ans = 0;cnt=0;for(int i = pos; i >= 1; i--) {if(a[i] > m) cnt++;else if(a[i] < m) cnt--;ans += 1LL*mp[-cnt];//奇数取最中间ans += 1LL*mp[-cnt + 1];//偶数去中间靠左的}printf("%lld\n", ans);//注意会爆intreturn 0;
}

Codeforces1005E1 - Median on Segments (Permutations Edition)(中位数计数)相关推荐

  1. Codeforces Round #496 (Div. 3 ) E1. Median on Segments (Permutations Edition)(中位数计数)

    E1. Median on Segments (Permutations Edition) time limit per test 3 seconds memory limit per test 25 ...

  2. 51Nod1682 中位数计数【中位数】

    1682 中位数计数 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 中位数定义为所有值从小到大排序后排在正中间的那个数,如果值有偶数个,通常取最中间的两个数值的平 ...

  3. HDU5701 中位数计数【中位数+水题】

    中位数计数 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  4. HDU 5701:中位数计数

    中位数计数 Time Limit: 12000/6000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Sub ...

  5. HDU 5701 中位数计数(思维+暴力)

    中位数计数 Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Submis ...

  6. hdu_5701_中位数计数

    题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5701 题意:不解释 题解:n^2的方法:sum[j]表示当前枚举的数到第j个数形成的区间里当前数偏离中 ...

  7. [CareerCup] 18.9 Find and Maintain the Median Value 寻找和维护中位数

    18.9 Numbers are randomly generated and passed to a method. Write a program to find and maintain the ...

  8. Codeforces Round #496 (Div. 3)【未完结】

    2022.3.5 题目地址:https://codeforces.com/contest/1005 目录 A. Tanya and Stairways[找规律] B. Delete from the ...

  9. hdu5701-中位数计数

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5701 题目: Problem Description 中位数定义为所有值从小到大排序后排在正中间的那个 ...

  10. python dataframe 中位数_python下的Pandas中DataFrame基本操作(一),基本函数整理

    pandas作者Wes McKinney 在[PYTHON FOR DATA ANALYSIS]中对pandas的方方面面都有了一个权威简明的入门级的介绍,但在实际使用过程中,我发现书中的内容还只是冰 ...

最新文章

  1. TensorFlow用法
  2. MPB:利用无菌植物和可培养细菌体系研究根系微生物组功能
  3. python namedtuple用法_Python namedtuple(命名元组)使用实例
  4. java之字符串学习记录
  5. 谈谈神秘的ES6——(一)初识ECMAScript
  6. Leetcode 100. 相同的树 (每日一题 20210811)
  7. POSIX 线程编程(二)线程建立与终止
  8. Eureka、Zookeeper和Consul 的区别
  9. 计算机网络项目——最小网元设计(前情提要和项目概述)
  10. 如何将本地项目上传到gitee
  11. 应用HttpWebRequest接收post或get数据
  12. 任意占空比的方波程序
  13. 《精通并发与Netty》学习笔记(02 - 服务端程序编写)
  14. Android性能调优工具TraceView
  15. 用java求可达矩阵_ISM算法(邻接矩阵求可达矩阵)Java实现
  16. 海量数据相似度计算之simhash短文本查找
  17. Java岗大厂面试百日冲刺 - 日积月累,每日三题【Day1】 —— 基础篇1
  18. php焦点图幻灯并排,21个很好的网页幻灯片(焦点图)设计
  19. RocketMQ 延迟队列
  20. 复制文件夹 omitting directory

热门文章

  1. Kafka集群中 topic数据的分区 迁移到其他broker
  2. Codeforces 620E New Year Tree
  3. Wannafly挑战赛28
  4. WebGL多模型光照综合实例
  5. 003自动装配歧义性解决
  6. 构建根文件系统之busybox
  7. 怀才当遇网—毕业季 | 你总说毕业遥遥无期,转眼就各奔东西
  8. JAVA,JSP,Servlet获取当前工程路径-绝对路径
  9. css 背景色半透明 子元素不透明
  10. Leetcode 27 Remove Element