链接:

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 262144K,其他语言524288K
64bit IO Format: %lld

题目描述

给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b。中位数是指把所有元素从小到大排列后,位于中间的数。

输入描述:

第一行为两个正整数n和b ,第二行为1~n 的排列

输出描述:

输出一个整数,即中位数为b的连续子序列个数。

示例1
输入

7 4
5 7 2 4 3 1 6

输出

4

题解:

b是中位数,在b后面的比b大,前面的比b小,比b大多少小多少都无所谓,所以我们可以把大于b的数记为1,小于的记为-1,相等的记为0,这样的话,我们要找一个什么样的区间?一个奇数区间的和是0且0的长度还是奇数(和为0说明左右两边-1和1数量相等,且最中间为0是我们所要的b)
我们可以以0开始分别分析左右两边,统计0的左边后缀和为i的个数,右边的前缀和为i的个数,为了保证两边数量相同,就要使右边的前缀和与左边的前缀和互为相反数。(左右前缀和均从0开始)
样例:
5 7 2 4 3 1 6
化为-1,0,1
1 1 -1 0 -1 -1 1
0的左边前缀和(从0开始)
1 0 -1
右边
-1 -2 -1

左边一个-1可以和右边两个-1搭配,两个答案
左边一个0,不与右边搭配,一个答案
b本身,一个答案
总:四个答案

代码:

(代码仅提供思路)

#include<iostream>
#include<cstdio>
#include<algorithm>
#define maxn 1e6+4
using namespace std;
int a[maxn];
map<int,int >b;
int main()
{int n,m;cin>>n>>m;int pos,sum=0;for(int i=1;i<=n;i++){cin>>a[i];if(a[i]<m)a[i]=-1;else if(a[i]>m)a[i]=1;else {a[i]=0;pos=i;}}b[0]=1;//和为0则符合条件 int tot=0;for(int i=pos-1;i;i--){if(a[i]==1)sum--;//前缀和 else sum++;if(sum==0)tot++;//存在0就直接加 b[tot]++;}for(int i=pos+1;i<=n;i++){if(a[i]==1)sum--;else sum++:ans+=b[-sum];//查看相反数有多少个 }printf("%d",tot);return 0;
}

牛客网【每日一题】5月22日 [CQOI2009]中位数图相关推荐

  1. 牛客网 每日一题 7月23日题目精讲—wpy的请求

    来源:牛客网: 文章目录 wpy的请求 题解: 代码: wpy的请求 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K Special Judge ...

  2. 2021-09-02牛客网每日10题--前端

    3 ng-class是做什么用的? 给元素绑定类名 eg:用法①: // An highlighted block <div ng-class="{'A':isA,'B':isB,'C ...

  3. PMP模拟试题每日5题(4月22日)

    ​​​​摘要:为帮助即将参加PMP®考试的考生快速熟悉PMP®试题.熟练掌握PMP®相关考点知识,本专栏将每日推出5道PMP®模拟试题(包含试题原题和答案解析),快来进行练习吧! 1.项目技术团队强烈 ...

  4. 牛客网SQL刷题笔记(MySQL)

    牛客网SQL刷题笔记(MySQL) 此博客集合LeetCode.牛客网常见的题型及其解法,侵删 目录 牛客网SQL刷题笔记(MySQL) 类型1:查找排名第几的数据 SQL2 查找入职员工时间排名倒数 ...

  5. 牛客网Java刷题知识点之关键字static、static成员变量、static成员方法、static代码块和static内部类...

    不多说,直接上干货! 牛客网Java刷题知识点之关键字static static代表着什么 在Java中并不存在全局变量的概念,但是我们可以通过static来实现一个"伪全局"的概 ...

  6. 牛客网Java刷题知识点之构造函数可以调用一般函数,但是一般函数不可以直接调用构造函数...

    不多说,直接上干货! 通过 牛客网Java刷题知识点之构造函数是什么.一般函数和构造函数什么区别呢.构造函数的重载.构造函数的内存图解 我们对构造函数有了一个比较清楚的认识,当我们在创建对象时,我们会 ...

  7. 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...

    不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...

  8. 牛客网Java刷题知识点之ArrayList 、LinkedList 、Vector 的底层实现和区别

    不多说,直接上干货! 这篇我是从整体出发去写的. 牛客网Java刷题知识点之Java 集合框架的构成.集合框架中的迭代器Iterator.集合框架中的集合接口Collection(List和Set). ...

  9. 牛客网Veirlog刷题答案目录(持续更新)

    牛客网Veirlog刷题答案目录(持续更新) 基础篇 进阶篇 基础篇 1.VL1--四选一多路选择器 2.VL2--异步复位的串联T触发器 3.VL3--奇偶校验 4.VL4--移位运算与乘法 5.V ...

最新文章

  1. ubuntu 在firefox,网页听不了音乐
  2. 【错误记录】Android NDK 错误排查记录 ( java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader )
  3. Loss Function , Cost Function and Kernel Function in ML(To be continued)
  4. C++中随机函数rand()和srand()的用法
  5. Facebook、LinkedIn、Airbnb、Google专家聚首QCon,他们会带来什么?
  6. 为什么不建议学python贴吧_为什么那么多自学Python的后来都放弃了,总结下来就这些原因...
  7. jpa 测试_使用外星人进行测试:如何使用Arquillian测试JPA类型转换器
  8. Android权限不够问题
  9. 【POJ - 3616】Milking Time (贪心+dp)
  10. risc系统服务器,精简的高端 解析四大RISC服务器处理器
  11. 请不要再使用判断进行参数校验了
  12. 2018年,Windows Phone 8.1还能做什么
  13. bittorrent下载_面向初学者的BitTorrent:如何开始下载Torrent
  14. 阿里面试——机器学习/算法面试经验案例集合
  15. 红皮书——红色启示录
  16. 发布包到maven公共仓库图文教程(1) --- 注册账号和提交申请
  17. 用了postman,接口测试不用愁了
  18. oppor11点击android版本,(周末回归)oppor11旧手机REC教程更新
  19. 因果推断-重要概念:ATE/CATE/ITE/ATT
  20. CSP2020-J1-真题解析-完善程序

热门文章

  1. 数据庞大繁杂,如何精简挖掘?
  2. java 线程 获取消息_获取java线程中信息
  3. mysql数据库属性_mysql - 数据库操作和数据属性
  4. 织梦首页html在哪儿,dedecms织梦首页去index.html
  5. 直接裂开!京东二面被问SpringBoot整合MongoDB,我不会啊
  6. android webview js 失效,Android WebView注入JQuery、JS脚本及执行无效的问题解决
  7. 闽高校计算机二级c语言模拟器,闽高校计算机二级C语言模拟卷及答案.doc
  8. webgl坐标转换_OpenGL/WebGL顶点坐标变换过程简介
  9. es6 ie不兼容 函数_ES6:什么是块级作用域?
  10. php引用类,thinkphp引用类的使用