P10202 [湖北省选模拟 2024] 沉玉谷 / jade
删除会导致相邻段间的合并,考虑区间 dp。现在确定了一个区间 \([l,r]\),我们希望从更小的区间中合并得到当前区间的答案。
P4484 [BJWC2018] 最长上升子序列
考虑状压打表,从小到大插入数字实时维护 LIS 的 \(f\) 数组,注意这样的插入前 \(i\) 个数时就认为序列的长度是 \(i\),插入是在空隙中。
一个序列的 LIS 是 \(\max f_i\),可以让 \(g_i=\max_{j=1}^if_j\),答案就是 \(g_n\),注意到相邻两数的变化量最多为一,因此 \(g\) 的差分就是一个可以状压的 \(01\) 序列。
转移的时候在 \(j\) 和 \(j+1\) 间插入数,那么 \(j\) 这一位一定会变成一,同时它后面的第一个一要变成 \(0\),因为我这一位的 \(f_i\) 已经增大到和下一个一的位置一样大的值了。
\(g_1=0\),可以去掉,然后转移模拟即可,要想清楚位置的关系,\(g_i\) 表示 \(f_{i}-f_{i-1}\),但是状压会自然地前移一位,同时还删掉了第一位。