本题需要在动态合并区间的过程中维护中位数。
所有涉及到左偏树的题解里,都是使用以下方法求中位数的:
- 先将两个段合并到一起。
- 然后不断地弹最大值,直到只剩一半的数。
显然,这么做是对的,当且仅当新的中位数,属于原来两个段之一的前一半小的数。
但我无法理解这个结论,并举出了一个 “反例”:
3 4 6 7 8 9 | 1 2 5
第一个段的中位数是 6/7,第二个段的中位数是 2,可以合并。但整体的中位数是 5。5 属于后一个段,但不属于后一个段的前一半,寄。
当然,我仅仅是对这个结论举出了一组反例,无法 Hack 掉任何通过的代码。
希望有神仙愿意帮我纠正我对这个结论的理解。