众所周知,如果我们在一个数组里面选X,则数组排序后的中位数是最优的。 考虑如何优化这个过程。 首先得想办法找到一个子数组的中位数,显然可持久化线段树可以支持子数组第K大的数的查询。 然后其实查一下小于中位数的数的和还有数量,还有大于中位数的数的和还有数量,然后分类讨论算一下就好了
#include <bits/stdc++.h>
#define ZhangHaoYang using
你有一个序列a1,a2,...,an,然后给你一些区间[l,r].对于每一个区间,你需要找到下式的最小值,对于所有可能的x