题目很好,考察对主席树的深入理解与灵活运用. 首先看看一般解决中位数的思路,我们二分一个 \(mid\),将区间中 \(\ge mid\) 的数置为 \(1\),小于的置为 \(-1\),然后求区间和,若大于等于零则 \(mid\) 还能增大,否则减小. 现在就有了两个问题:第一,区间不固定:第二,每次二分一个答案就要重构区间,复杂度爆炸. 现在我们来仔细分析一下主席树的结构,首先,它是一个每个点都建了一棵线段树,形成前缀和的形式:每棵线段树又与区间有关.抽象地说,我们可以把第一个特征看作解决时…