[SDOI2011]拦截导弹

拦截导弹

题解

导弹拦截???拦截导弹???

这变成了一个二维的拦截导弹,我们先按照导弹拦截的思路看看。

f1_{i}为到i的最长下降子序列的长度,也就是LDS,而g1_{i}则是到i的这样的LDS的个数。这种常规的dp明显会T。

而给出的明显是一个三维偏序的问题,我们可以利用CDQ来解决这个问题。因为t这一维已经排好序了,我们就可以通过t这一维来进行二分。

在分治中就通过h这一维来进行划分,再将左边的操作影响更新到右边即可,而维护的这个过程又需要通过线段树来维护。

再通过第二次CDQ求出它的f2_{i}g2_{i},也就是从i开始的LDS的长度与个数。

对于一个节点,当且仅当

posted @ 2022-02-12 20:03  StaroForgin  阅读(26)  评论(0)    收藏  举报  来源