csp-s模拟测试52平均数,序列题解】的更多相关文章

题面:https://www.cnblogs.com/Juve/articles/11602244.html 平均数: 第k个平均数不好求,我们考虑二分,转化成平均数小于x的有几个 虑把序列中的每个数减去 x,则我们只需求区间和小于 0 的区间数量. 我们对这个序列求前缀和,则区间[L,R]和小于 0 当且仅当 SL-1>SR, 答案即为前缀和序列 S 的逆序对数量,使用经典的归并排序即可解决 #include<iostream> #include<cstdio> #incl…
A.平均数 看到第K小,又确定跟平衡树/主席树没有关系,可以把问题转化为有K-1个答案比它小再考虑二分. 二分平均值x,之后将原序列统一减去x.这时序列中区间和<0的区间个数就是原序列中平均值小于x的区间个数. 求个前缀和,那么区间和<0转化成$sum_l > sum_r$,归并排序求逆序对即可.复杂度$O(n\ log^2 \ n)$ #include<cstdio> #include<iostream> #include<cstring> #inc…
状态极差的两场.感觉现在自己的思维方式很是有问题. (但愿今天考试开始的一刻我不会看到H I J) A 考场上打了最短路+贪心,水了60. 然而正解其实比那30分贪心好想多了. 进行n次乘法后的结果一定可以化成$S\times b^n + m\times a$的形式,并且$m$是b的若干次幂(带系数)之和. 也就是说,$m=\frac{T-S\times b^n}{a}$可以写成$b$进制数,当然前提是$T-S \times b^n \ mod\ a=0$. 那么这个b进制数的系数之和其实就是加…
刚刚写了一个小时的博客没了,浏览器自动刷新. 一!个!小!时! 鼠标键盘电脑哪个都不能摔,气死我了. 垃圾选手T1T2没思路,T3倒是想出来得比较早,靠T3撑着分数. 数据结构学傻选手,属实垃圾. T1平均数: 一个序列的所有数如果减去x,那么平均数也会减去x.可以二分这个x,统计序列里平均数小于0的序列的个数,含义为原序列平均数小于x的序列的个数.最后统计值小于k且最接近k的x就是所求答案. 序列的平均数小于0,那么序列的和也一定小于0.表现在前缀和上即为一个区间的sumr<suml-1,转化…
也好. 该来的迟早会来. 反思再说吧. 向下跳过直到另一条分界线 %%%cbx也拿到了他的第一个AK了呢. 我的还是遥不可及. 我恨你,DeepinC. 我恨透你了.你亲手埋葬所有希望,令我无比气愤. 我总想打你一顿,但是这除了让他人取笑以外毫无用处. 没有什么借口. 本来还想用数据出锅的那90分回去,但是没有意义. 如果这能让你有所改变的话. 没人知道你做错了什么,至少我也不知道. 但是这个世界不就是这个样子吗? 只看结果,强者为王. 你要好好思考一下教练对你说过的话: 你真的没有那么强. 现…
题目描述 从前有个括号序列$s$,满足$|s|=m$.你需要统计括号序列对$(p,q)$的数量. 其中$(p,q)$满足$|p|+|s|+|q|=n$,且$p+s+q$是一个合法的括号序列. 输入格式 从文件$bracket.in$中读入数据.第一行两个正整数$n,m$. 第二行一个长度为$m$的括号序列,表示$s$. 输出格式 输出到文件$bracket.out$中. 输出一行一个整数,表示符合条件的$(p,q)$的数量对$10^9+7$取模的值. 样例 样例输入1: 4 1 ( 样例输出1:…
---恢复内容开始--- 序列 刚调出来样例就A了,假装是水题. 因为是乱序,我们要求出来每两项之间最小公比,而不是直接比 求出来每两项之间最小公比,然后扫一遍就完了.(还要注意重复情况) 那么问题就转化成了怎么求最小公比. 完了 以下是本人丑陋的代码 #include<bits/stdc++.h> #define ll long long #define A 100000 using namespace std; ll n,a[10*A],tot=0,maxlen[10*A],nowlen=…
题面(加密) 又考没学的姿势……不带这么玩的…… 考场上打了个模拟 骗到30分滚粗了 稍加思考(滑稽)可将题面转化为: 求一个最大的$d$,使得 $\sum \limits _{i=1}^n {(\left \lceil \frac{a_i}{d} \right \rceil *d-a_i)} \leq k$ 移项可得 $\sum \limits _{i=1}^n {\left \lceil \frac{a_i}{d} \right \rceil *d} \leq k+\sum \limits…
啊啊啊啊啊啊啊啊考场上差一点就A掉了5555 千里之堤溃于蚁穴……鬼知道最后一步那么显然的柿子我为什么没考虑用上…… 观察数据范围可知,出题人期望我们想出一个$O(n)$的做法 当然也有可能是$O(nlogn)$,但是这道题所求的数值与树上每个点的权值有关, 似乎用点分治并不能够解决. 那怎么办?树形dp啊.保证严格$O(n)$. 有了这样的思路,我们先来看第一问,并设计一个可以用一遍dfs计算出数组$b[]$的算法. 各位想必知道,树形dp的基本思想是$"Up\ and\ Down"…
达哥送分给我我都不要,感觉自己挺牛批. $type=0:$ 跟visit那题类似,枚举横向移动的步数直接推公式: $ans=\sum C_n^i \times C_i^{\frac{i}{2}} \times C_{n-i}^{\frac{n-i}{2}},i\% 2=0$ $type=1:$ 因为不能触碰负半轴,所以可以把右移看成+1,左移看成-1,转化为前缀和大于等于0的问题 于是直接Catalan数就好了.注意是第$\frac {n}{2}$项的Catalan. $Catalan_n=C_…