1303: [CQOI2009]中位数图

Time Limit: 1 Sec  Memory Limit: 162 MB
Submit: 1535  Solved: 999
[Submit][Status][Discuss]

Description

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

Input

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

Output

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

Sample Input

7 4
5 7 2 4 3 1 6

Sample Output

4

HINT

第三个样例解释:{4}, {7,2,4}, {5,7,2,4,3}和{5,7,2,4,3,1,6}
N<=100000

开始写了个比较暴力的……90分挂了。
之后看了题解(题解大法好),神奇的乘法原理,我开始吐槽数据有多水……暴力90分。
将中间点=0,>中间点=1,<中间点=-1。
统计中间点左右的区间和 sum[i,pos] sum[pos,i] 并统计 left[sum[i,pos]] right[sum[i,pos]] 最后left[k]*right[-k] (即代数和为0)+到ans里就好。
注意c++数组下标不能为负数,+n处理就好了(注意数组范围 不注意也是90分……)。小细节比较多。
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
int b,n,a[100001],l[100001],r[200001],sum[200001],ans,pos;
int read()
{char c=getchar();int a=0;while (c<'0'||c>'9') c=getchar();while (c>='0'&&c<='9') {a=a*10+c-'0';c=getchar();}return a;
}
int main()
{n=read();b=read();sum[0]=0;for (int i=1;i<=n;i++){a[i]=read();if (a[i]>b) a[i]=1; else if (a[i]<b) a[i]=-1;else if (a[i]==b) { a[i]=0; pos=i; }}sum[pos]=0;l[n]=1; r[n]=1;for (int i=pos-1;i>=1;i--) { sum[i]=sum[i+1]+a[i]; l[sum[i]+n]++; }for (int i=pos+1;i<=n;i++) { sum[i]=sum[i-1]+a[i]; r[sum[i]+n]++; }ans=0;for (int i=0;i<=2*n-1;i++) ans+=l[i]*r[2*n-i];printf("%d",ans);return 0;
}

转载于:https://www.cnblogs.com/ws-fqk/p/4502308.html

[CQOI2009][BZOJ1303] 中位数图相关推荐

  1. 【CQOI2009】中位数图

    Powered by:NEFU AB-IN [CQOI2009]中位数图 题意 给出 1 − n 1-n 1−n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是 b b b. 中位数是指 ...

  2. bzoj1303[CQOI2009]中位数图

    1303: [CQOI2009]中位数图 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 1969  Solved: 1264 [Submit][Sta ...

  3. BZOJ 1303: [CQOI2009]中位数图【前缀和】

    1303: [CQOI2009]中位数图 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2737  Solved: 1698 [Submit][Sta ...

  4. bzoj 1303: [CQOI2009]中位数图

    1303: [CQOI2009]中位数图 Time Limit: 1 Sec  Memory Limit: 162 MB Submit: 2747  Solved: 1704 [Submit][Sta ...

  5. [CQOI2009]中位数图

    [CQOI2009]中位数图 这是一道OI真题,我们来看看题目: 顺便放下地址吧:[CQOI2009]中位数图 读了题目之后发现直接枚举是不行的,会超时,那么我们就得换种思路了,我们可以把大于目标数的 ...

  6. [bzoj1303][CQOI2009]中位数图

    来自FallDream的博客,未经允许,请勿转载,谢谢. 给定一个n个数排列,求有多少段长度为奇数的区间,中位数是b. n<=100000 时间限制0.1s 我一开始没看到排列,想着怎么还能O( ...

  7. [CQOI2009]中位数图 详细题解

    题目链接: https://ac.nowcoder.com/acm/problem/19913 题目描述: 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有 ...

  8. 牛客网【每日一题】5月22日 [CQOI2009]中位数图

    链接: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format: %lld 题目描述 给出1~n的一个排列,统计该排列有 ...

  9. 全市场等权中位数_A股市场周内效应研究

    引言 >>> 研究目的 本文参考东吴证券研报<A股市场的周内效应>内容,对A股市场的日历效应在周内表现进行探索.日历效应,是一个鱼龙混杂的题目.有诙谐逗笑的,如马克吐温老 ...

  10. 【量化投资实训】基于MATLAB实验七.全部行业的营收增速中位数绘图

    matlab实现 %导入行业相关数据 load StockFincData-Whole.mat load IndexList-Sw1stClass.mat %循环语句 for i=1:length(S ...

最新文章

  1. NPTL简介 (NATIVE POSIX Thread Library)
  2. 细说伟哥那些你不知道的神奇用途
  3. 八年级计算机教学论文,初二数学教学论文范文
  4. 关于WPF中Popup中的一些用法的总结
  5. Android 百度推送使用总结
  6. gvf snake matlab,GVF Snake 学习的分析总结
  7. Easyrecovery12.0.0.2 官方版下载
  8. Origin实现中英文版本切换
  9. 以赛促产 以赛引才 |第六届世界智能大会·中国华录杯数据湖算法大赛正式启动
  10. win10系统电脑点击桌面图标没反应怎么处理
  11. m基于LS+变步长LMS的Volterra级数数字预失真DPD系统matlab仿真
  12. 三、Python复习教程(重点)- 前端框架实战
  13. emwin自定义字库
  14. Ant Design + react-drag-listview实现Table拖拽变换列位置
  15. 前后端分离简单项目--蚂蚁博客--后端部分
  16. infor接口调用,okhttp不同版本使用
  17. 双臂模式DPVS+RPM安装教程
  18. GMT中文字体显示配置
  19. HTML:超文本标记语言
  20. swift 获取导航栏底部线

热门文章

  1. Android mainfests手记
  2. [原创]IPV4分组的格式
  3. ping命令执行过程详解
  4. pthread库实现一个简单的任务池
  5. Vmware中RedHat命令行和图形界面切换
  6. iOS 报错: You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE) 解决方法
  7. es elasticsearch-head安装
  8. Hibernate课程 初探一对多映射3-3 单向多对一的测试
  9. 20155213免考项目——简易的HIDAttack
  10. 百度编辑器复制微信图片无法保存