codeforces.com/contest/ 题意 给你一个长度为 n 的数组 a 。请找出一个长度至少为 k 且中位数最大的子数组 a[l..r]。 在长度为 n 的数组中,中位数是指按非递减顺序排序后,占据位置编号 ⌊n+12⌋ 的元素。例如 median([1,2,3,4])=2 , median([3,2,1])=2 , median([2,1,2,1])=...
首先能想到的做法,二分一个K,然后check的时候按照标准k叉哈夫曼树的做法,搞个优先队列,别忘补0(通过n%(k-1)==1这个判断条件不断n++),但是这个做法是nlognlogn的。现在考虑优化: 首先如果是2叉哈夫曼树: 可以设两个数组,一个存放排序后的原数据,一个存放每次相加后的值。对于取之也有几种分析: 1.全部...