P4484题解

很神奇的状态。。。。。。

很难想象这是一个人能在考场上想到的状态。

对于一个排列 \(p\),设 \(f_i\) 表示以 \(p_i\) 结尾的 LIS 的长度。

考虑排列计数的套路令所有元素 \(+1\) 然后塞一个 \(1\) 进去或者直接塞一个 \(n\)。这里考虑后者更简单。

容易发现 \(f_i\) 等价最小表示法的状态数,于是我们就得到了一个比较优秀的算法,但是还是跑不过去。

考虑一个神奇的过程,加入一个 \(n\) 后,假设是加到了 \(i\) 上,那么有 \(f_i=\max_{j=1}^{i-1}f_j+1\)

于是我们设 \(g_n=\max_{i=1}^{n}f_i\),不再在状态上维护 \(f\) 而是 \(g\)

容易发现相邻的 \(g\) 最多差 \(1\),于是可以把这个状压下来。复杂度 \(O(n2^n)\)

正解就是,用这个状压打表即可。。。。。。

posted @ 2022-09-23 16:42  Prean  阅读(40)  评论(0编辑  收藏  举报
var canShowAdsense=function(){return !!0};