Large DP Editorial【翻译】

F - 大型DP表 论文

maroonrk_admin


通过从反向观察DP,视野变得更加开阔。

我们考虑从坐标\((i,j)\)开始移动棋子,如果\(A_i < B_j\),则\(j \mathrel{-}=1\),如果\(A_i > B_j\),则\(i \mathrel{-}=1\)

在这种设定下我们进行讨论。
通过手动操作各种情况,我们发现以下性质。

  • 固定某个坐标\((a,b)\)。将坐标\((i,j)\)\(a \leq i\)\(b \leq j\))组成的矩形区域称为\(R(a,b)\)。问:从某个坐标\((c,d)\)开始的棋子何时会离开\(R(a,b)\),是什么方向的移动?
    答案是,当\(\min{A[a,c]} < \min{B[b,d]}\)时为横向,否则为纵向。

证明可以通过归纳法进行。

利用这个性质来解决原问题。
由于纵向和横向在问题上是对称的,以下仅计算\(X\)的贡献。固定\((a,b)\),考虑通过移动\((a,b) \to (a,b-1)\)对答案的贡献,结果为\(\displaystyle X_a\left(\sum_{a\leq c,b \leq d} [\min{A[a,c]} < \min{B[b,d]}] - \sum_{a+1\leq c,b \leq d} [\min{A[a+1,c]} < \min{B[b,d]}]\right)\)
()内的\(2\)项几乎相同,因此只考虑第\(1\)项。再进一步考虑将\(a,b\)也移动并求和。
那么,与以下的和是等价的。

  • 对于满足\(-1 \leq a \leq c \leq N\)\(1 \leq b \leq d \leq M\)\(\min{A[a,c]} < \min{B[b,d]}\)的整数组合\((a,c,b,d)\),乘以\(X_a\)的系数并加到答案中。条件\([a,c], [b,d]\)仅通过\(\min\)来描述这一点是重要的。对每一个\(\min{A[a,c]}\)的值,将\([a,c]\)分类,对应地求出\(X_a\)的和(\([b,d]\)同理),这样就可以计算出上述问题。对\(\min{A[a,c]}\)的值进行分类的方法可以是任意的,比如使用数列的Cartesian Tree可以在\(O(N)\)的时间内完成。

其他所有操作也都能在\(O(N)\)的时间内完成,因此这个问题在整体上也可以在\(O(N)\)的时间内解决。

解答例

posted @ 2025-01-20 18:55  zhiyin123123  阅读(15)  评论(0)    收藏  举报
目录侧边栏

qwq