首先,若我们将所有点按照 yi 的顺序转移, 有上界和下界两个限制, 难以优化。
容易想到按照 xi 排序转移, 并记录 fi,0/1 表示以第 i 个点为顶端接下来向 左或向右的折线方案数。
从左到右加点, 考虑前 i 个点构成的包含 i 点的折线。由于新点横坐标最大, 所以只可能在折线的第一位或第二位:
1. ∀yj</sub> < yi,fi,0 ← fj,1
2. ∀yj</sub> > yi,fj,1 ← fk,0 | xk > xj and yk < yi
第二种情况可以前缀和优化, 复杂度 O(n2),详情看代码吧。
1 |
|