视作 $n,v$ 同阶。
首先在每个数加入堆的时刻就决策好最终被弹出还是对 $ans$ 造成贡献,若造成贡献则直接在此刻计算。
模仿 famous in russia,得到一个较高复杂度的做法:最终被弹出的元素中,最大的是 $l$,被保留的元素中最小是 $r$,并且记录当前钦定要被弹出但是实际上还在堆中的数量 $c$。状态为 $f_{i,l,r,c}$,复杂度 $\mathcal O(n^5)$。
注意到只有 $c\to 0$ 并且被弹空的转移是相对较为复杂的,考虑直接对弹空的时刻设状态,不妨对弹空的状态间相互转移。也就是说,对于 $f$ 可以直接将 $l,c$ 维扔掉,变成 $f_{i,r}$。
考虑当前时刻的 $r$,在下一次弹空时变为了 $r'$,在这一段时间中若 $v\ge r^{\prime}$ 则必然要被钦定留下,而 $v\leq r^{\prime}-1$ 时必须被钦定弹出,在这个过程中只关心 $c$,状态即为 $g_{i,r^{\prime},c}$,其中 $r^{\prime}$ 为上面预先决策好的。
时间复杂度 $\mathcal O(n^3)$。