[CQOI2009] 中位数 - 桶
给出 \(1~n\) 的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是 \(b\)。中位数是指把所有元素从小到大排列后,位于中间的数。
Solution
(这个题为什么会被打上数学标签?)
由于给出的是排列,我们找到这个数在哪,然后考虑它左边和右边的数
我们把比它大的数都变成 \(1\) ,小的都变成 \(-1\)
向左的后缀和值构成的多重集 \(A\),向右的 \(B\)
现在就是要在向左和向右里面各找出一个数相加和为 \(0\),求方案数
拿桶搞搞就可以了
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,k,x[100005],s[200005],a[200005],b[200005];
signed main() {
ios::sync_with_stdio(false);
cin>>n>>k;
for(int i=1;i<=n;i++) cin>>x[i];
int pos=0;
for(int i=1;i<=n;i++) if(x[i]==k) pos=i;
for(int i=1;i<=n;i++) {
if(x[i]>k) s[i]=1;
if(x[i]<k) s[i]=-1;
}
for(int i=pos-1;i;--i) s[i]+=s[i+1];
for(int i=pos+1;i<=n;i++) s[i]+=s[i-1];
for(int i=1;i<=pos;i++) a[s[i]+100000]++;
for(int i=pos;i<=n;i++) b[s[i]+100000]++;
int ans=0;
for(int i=0;i<=200000;i++) ans+=a[i]*b[200000-i];
cout<<ans;
}
[CQOI2009] 中位数 - 桶的更多相关文章
- BZOJ 1303 CQOI2009 中位数图 水题
1303: [CQOI2009]中位数图 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2340 Solved: 1464[Submit][Statu ...
- BZOJ 1303: [CQOI2009]中位数图【前缀和】
1303: [CQOI2009]中位数图 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2737 Solved: 1698[Submit][Statu ...
- Luogu1627 [CQOI2009]中位数
Luogu1627 [CQOI2009]中位数 给出一个 \(n\) 的排列,统计该排列有多少个长度为奇数的连续子序列的中位数是 \(k\) \(n\leq10^5\) \(trick\) :因为不需 ...
- 洛谷 P1627 [CQOI2009]中位数 解题报告
P1627 [CQOI2009]中位数 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. 输入输出格式 输入格式 ...
- 【BZOJ1303】[CQOI2009]中位数图(模拟)
[BZOJ1303][CQOI2009]中位数图(模拟) 题面 BZOJ 洛谷 题解 把大于\(b\)的数设为\(1\),小于\(b\)的数设为\(-1\).显然询问就是有多少个横跨了\(b\)这个数 ...
- bzoj千题计划175:bzoj1303: [CQOI2009]中位数图
http://www.lydsy.com/JudgeOnline/problem.php?id=1303 令c[i]表示前i个数中,比d大的数与比d小的数的差,那么如果c[l]=c[r],则[l+1, ...
- [CQOI2009] 中位数 (前缀和)
[CQOI2009] 中位数 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. 输入输出格式 输入格式: 第一行 ...
- bzoj 1303: [CQOI2009]中位数图 数学
1303: [CQOI2009]中位数图 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- BZOJ1303 [CQOI2009]中位数图 【乱搞】
1303: [CQOI2009]中位数图 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 3086 Solved: 1898 [Submit][Sta ...
随机推荐
- Dynamics 365 marketing中添加自定义渠道磁贴
Dynamics 365 marketing中默认的渠道只有Marketing Email和Marketing Activity,想要添加其他渠道必须自定义磁贴,自定义磁贴的步骤如下: 1.创建实体 ...
- Java之GUI编程
GUI编程 组建 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1.简介 GUI的核心技术:Swing AWT 为什么不流行? 界面不美观. 需要jre环境.(没必 ...
- SQL查询结果自定义排序
一般情况之下,我们可以使用ORDER BY ...ASC或DESC来做查询排序.如: SELECT * FROM [dbo].[SalesPerformance] ORDER BY [Salesman ...
- Edge Chromium 中如何始终允许运行 Flash 内容
众所周知,由于 Adobe Flash 控件历史久远,积累了许多漏洞.早在2017年7月,Adobe就宣布了要在2020年底终止对 Flash 的支持.微软称其浏览器移除 Flash 插件的最后期限是 ...
- TCP/IP详解阅读记录----第一章 概述
1.TCP/IP协议族中不同层次的协议 2.五类互联网地址 3.各类IP地址范围 4.数据进入协议栈时的封装过程 5.以太网数据帧的分用过程
- TNS-01189 During Listener Monitoring Using Enterprise Manager
oracle 12.2 RAC监听日志报错:15-JAN-2020 22:27:53 * (CONNECT_DATA=(COMMAND=VERSION)) * version * 1189TNS-01 ...
- 有关css编写文字动态下划线
<div class="main_text">哈哈这就是我的小视频</div> 上面为html代码 接下来进行css的编写 .main_text{ posi ...
- Jenkins 插件安装问题
插件安装问题 尝试修改更新站点为可用的镜像站点 打开 Jenkins > Manage Jenkins > Manage Plugins > Advanced,将 Update Si ...
- vue.config.js添加路径别名
在组件库中添加配置文件后其它文件需要引用它,此时想到利用路径的别名比较方便,相当于缩写了,请看下面的添加过程: (一)在vue.config.js文件中添加的内容如粗体字体所示: const path ...
- 使用 VMware Workstation Pro 安装新的虚拟机
一.连接服务器 (1)“文件”右键 (2)输入用户名.密码连接服务器 二.创建新的虚拟机 (1) (2) (3) (4) (5) (6) (7) (8) 三.配置服务器 配置文档 - 链接:htt ...