洛谷——P1627 [CQOI2009]中位数】的更多相关文章

P1627 [CQOI2009]中位数 题目描述 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. 输入输出格式 输入格式: 第一行为两个正整数n和b,第二行为1~n的排列. [数据规模] 对于30%的数据中,满足n≤100: 对于60%的数据中,满足n≤1000: 对于100%的数据中,满足n≤100000,1≤b≤n. 输出格式: 输出一个整数,即中位数为b的连续子序列个数. 这个题其实并不是很难想. 转换一下模型…
P1627 [CQOI2009]中位数 给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. 中位数的题目有关统计的话,可以转化成$0,-1,1$这三个数来做,分别表示这个数$=x$,$<x$和$>x$ 这个题也就是要求统计$x$左边和右边相同的$s$的对数,$s$表示前缀和之差 基数排序 #include<bits/stdc++.h> using namespace std; int n,x; ][]; i…
P3871 [TJOI2010]中位数 题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从小到大排序后处在中间位置的数.(若序列长度为偶数,则指处在中间位置的两个数中较小的那个) 例1:1 2 13 14 15 16 中位数为13 例2:1 3 5 7 10 11 17 中位数为7 例3:1 1 1 2 3 中位数为1 输入输出格式 输入格式: 第…
P3155 [CQOI2009]叶子的染色 题目描述 给一棵m个结点的无根树,你可以选择一个度数大于1的结点作为根,然后给一些结点(根.内部结点和叶子均可)着以黑色或白色.你的着色方案应该保证根结点到每个叶子的简单路径上都至少包含一个有色结点(哪怕是这个叶子本身). 对于每个叶结点u,定义c[u]为从根结点从U的简单路径上最后一个有色结点的颜色.给出每个c[u]的值,设计着色方案,使得着色结点的个数尽量少. 输入输出格式 输入格式: 第一行包含两个正整数m, n,其中n是叶子的个数,m是结点总数…
传送门 要求有多少个长度为奇数的区间满足某个数为区间中位数 这样的区间,大于中位数的数个数 等于 小于中位数的数个数 用类似于前缀和的方法,设\(X_i\)为\(i\)和数\(b\)形成的区间内,大于\(b\)的数个数减去小于\(b\)的数个数的值,每次从前面那个位置转移过来,加上这个位置的贡献救星 最后用两个桶统计\(b\)左边和右边的\(X_i\)为某个值的个数,分别记为\(l_i\ r_i\),然后答案为\(\sum_{i,j}l_ir_j\ (i+j==0)\) 注意负下标处理和两个初值…
题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从小到大排序后处在中间位置的数.(若序列长度为偶数,则指处在中间位置的两个数中较小的那个) 例1:1 2 13 14 15 16 中位数为13 例2:1 3 5 7 10 11 17 中位数为7 例3:1 1 1 2 3 中位数为1 输入输出格式 输入格式: 第一行为初始序列长度N.第二行为N个整数,…
[题解] 平衡树模板题,不过因为可以离线,所以有别的做法.把询问倒着做,变成删掉数字.求中位数,于是可以二分+树状数组. #include<cstdio> #include<cstring> #include<algorithm> #define LL long long #define rg register #define N 500010 using namespace std; int n,m,cnt,top,b[N],t[N],ans[N]; struct r…
P3871 [TJOI2010]中位数 一眼秒掉,这不是splay水题吗,套模板 #include<bits/stdc++.h> #define IL inline #define N 150005 using namespace std; ],siz[N],val[N],cnt[N],f[N],root,ncnt; IL void pushup(int k) { siz[k]=siz[ch[k][]]+siz[ch[k][]]+cnt[k]; } IL int chk(int x) { ]=…
题目描述 给定一个由N个元素组成的整数序列,现在有两种操作: 1 add a 在该序列的最后添加一个整数a,组成长度为N + 1的整数序列 2 mid 输出当前序列的中位数 中位数是指将一个序列按照从小到大排序后处在中间位置的数.(若序列长度为偶数,则指处在中间位置的两个数中较小的那个) 例1:1 2 13 14 15 16 中位数为13 例2:1 3 5 7 10 11 17 中位数为7 例3:1 1 1 2 3 中位数为1 输入输出格式 输入格式: 第一行为初始序列长度N.第二行为N个整数,…
CSDN同步 原题链接 简要题意: 给定一个 \(1\) ~ \(n\) 的排列,求以 \(b\) 为中位数的 连续子序列且长度为奇数 的个数. 显然这段序列包含 \(b\). 中位数的定义:排序后在最中间的数. 算法一 对于 \(30 \%\) 的数据,\(n \leq 100\). 由于这段序列一定包含 \(b\),那么我们可以枚举区间 \([i,j]\) 包含 \(b\)(有类似于双指针),然后单独取出 \([i,j]\) 这段进行排序,暴力判断即可. 时间复杂度:\(O(n^3 \log…