长度为$n$的序列$p_1…p_n$,和长度为$n$的序列$q_1…q_n$ 。
- 将$q_i$放入集合$A$
- 若$i$有炸弹,则移走$A$中最大的
$q_i$表示在$q_i$这个位置放上炸弹。问第$i$次放上炸弹时最后集合中最大的元素是多少。$q_1…q_i-1$放上炸弹。
考虑一个炸弹放入后会影响$[1,p_i]$中的元素。如果当前最大的我对$[1,pos[ans]]$贡献$1$。因为需要$x>=pos[ans]$才能将$ans-1$。
当我搜索每一次答案的时候判断此时有位置$\leq 0$。如果有则证明当前$ans$所有保护他的以及,比他大的都被炸弹掉了。然后我就继续更新。此时更新$[1,pos[ans-1]]$。观察比他大的数的区间是否以及都被干掉。
代码
1 |
|