有个想法不知对不对,麻烦大佬指导
查看原帖
有个想法不知对不对,麻烦大佬指导
479448
fire_and_sweets楼主2025/7/30 09:59

我直接弄一个指针从左往右扫过去。维护两个堆,一个指针左边的,一个指针右边的。那么,每次挪动过去一格的时候,考虑对答案的变化。你看一下如果进入左边的那个新的点在右边的堆里面,就把右边的那个堆中的元素删除;然后把这个新的元素加到左边的里。

那我移动的时候显然每次都是左边多了一种可能,右边少了一种可能,那么现在问题就是:你怎么动态维护左边和右边的决策点。换句话说,你怎么维护左边选了多少个,右边选了多少个。

大胆猜测在最优情况下,左边选择的数的个数递增,右边递减。所以我们双指针维护即可。

那现在我们需要支持的操作是:插入一个数,询问某一个排名的数是多少。这个可以很容易的用平衡树维护。

这个思路我不知道对不对,是否可行。麻烦大佬指点下!

2025/7/30 09:59
加载中...