Large DP Editorial【翻译】
F - 大型DP表 论文
通过从反向观察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)\)的时间内解决。

浙公网安备 33010602011771号