题面

因为所求的是中位数,所以考虑改变原序列。把大于 b 的数全部变为 1,小于 b 的数变为 −1,等于 b 则为 0。问题就变为求存在几个包含 b的区间和为 0 。

根据乘法原理,我们枚举每一个l[i],求出l[i]*r[-i]后累加到ans上;

因为数组的下标不能是负数,所以把所有下标都加上100000;

#include <bits/stdc++.h>
using namespace std;
int a[];
int c[];
int r[],l[];
int mmap1[],mmap2[];
int main()
{
int n,b;
cin>>n>>b;
int id=;
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
if(a[i]==b) id=i;
if(a[i]>b) c[i]=;
else if(a[i]<b) c[i]=-;
else c[i]=;
}
for(int i=id;i<=n;i++){
r[i]=r[i-]+c[i];
mmap2[r[i]+]++;
}
for(int i=id;i>=;i--){
l[i]=l[i+]+c[i];
mmap1[l[i]+]++;
}
long long ans=;
for(int i=;i<=;i++){
ans+=mmap1[i]*mmap2[-i];
}
cout<<ans;
}

BZOJ 1303 中位数图 题解的更多相关文章

  1. BZOJ 1303 中位数图 模拟

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1303 题目大意: 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位 ...

  2. bzoj 1303: [CQOI2009]中位数图 数学

    1303: [CQOI2009]中位数图 Time Limit: 20 Sec  Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...

  3. BZOJ 1303 CQOI2009 中位数图 水题

    1303: [CQOI2009]中位数图 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 2340  Solved: 1464[Submit][Statu ...

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

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

  5. [BZOJ 1303] [CQOI2009] 中位数图 【0.0】

    题目链接:BZOJ - 1303 题目分析 首先,找到 b 的位置 Pos, 然后将数列中小于 b 的值赋为 -1 ,大于 b 的值赋为 1 . 从 b 向左扩展,不断算 Sum[i, b - 1] ...

  6. bzoj千题计划175:bzoj1303: [CQOI2009]中位数图

    http://www.lydsy.com/JudgeOnline/problem.php?id=1303 令c[i]表示前i个数中,比d大的数与比d小的数的差,那么如果c[l]=c[r],则[l+1, ...

  7. 【BZOJ1303】[CQOI2009]中位数图(模拟)

    [BZOJ1303][CQOI2009]中位数图(模拟) 题面 BZOJ 洛谷 题解 把大于\(b\)的数设为\(1\),小于\(b\)的数设为\(-1\).显然询问就是有多少个横跨了\(b\)这个数 ...

  8. BZOJ1303 [CQOI2009]中位数图 【乱搞】

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

  9. BZOJ 1003 物流运输 题解 【SPFA+DP】

    BZOJ 1003 物流运输 题解 Description 物流公司要把一批货物从码头A运到码头B.由于货物量比较大,需要n天才能运完.货物运输过程中一般要转停好几个码头.物流公司通常会设计一条固定的 ...

随机推荐

  1. Qt:The CDB Process Terminated!调试失败

       一般是找不到DLL库导致的CDB终止.

  2. 在$scope中变量和方法的使用

    代码: angularjs.html <!doctype html> <html> <head> <meta charset="UTF-8" ...

  3. malloc,calloc,realloc

    与堆操作相关的两个函数 malloc #include<stdio.h> #include<stdlib.h> #include<string.h> int mai ...

  4. Linux命令-磁盘管理(二)

    Linux命令-磁盘管理(二) Linux mmount命令 Linux mmount命令用于挂入MS-DOS文件系统. mmount为mtools工具指令,可根据[mount参数]中的设置,将磁盘内 ...

  5. HDU 3669 [Cross the Wall] DP斜率优化

    问题分析 首先,如果一个人的\(w\)和\(h\)均小于另一个人,那么这个人显然可以被省略.如果我们将剩下的人按\(w[i]\)递增排序,那么\(h[i]\)就是递减. 之后我们考虑DP. 我们设\( ...

  6. C++入门经典-例3.14-使用while循环计算从1到10的累加

    1:代码如下: // 3.14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> usin ...

  7. 循环链表C语言实现

    按照单链表的设计,稍加改动.和单向链表不一样的地方,头节点不指向NULL,而是指向自己head 循环链表的判满 1)判断next是不是头结点,2)判断size /* * CycleLinkList.h ...

  8. EventChannel 原生向Flutter传递数据

    目的:原生页面主动向Flutter页面传递信息 1 flutter步骤 定义EventChannel static const EventChannel eventChannel = EventCha ...

  9. C# NAudio 变声

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. IDEA创建各种不同的工程的方法

    javaWeb工程 maven创建javaSE项目 上面点击next: 项目右下角选择自动导入: maven创建javaWeb工程 项目右下角选择自动导入maven项目 上面创建成功之后发现没有jav ...