ABC446G Solution

abc446g

要求的是本质不同的序列个数。

定义 \(dp_{i,j}\) 为到 \(i\) 为止,以 \(j\) 结尾的不同序列个数。有更新:\(1+\sum_{c\ne a_i} dp_p,c\to dp_{i,a_i}\),其中 \(p\) 为到 \(i\) 为止(包括 \(i\))倒数第 \(a_i\)\(a_i\) 的前一位的位置。对于 \(dp_{i,c},c\ne a_i\),继承 \(dp_{i-1,c}\) 即可。于是就可以用可持久化数组,做到 \(O(n\log n)\)。发现这个可持久化数组调用的值是可以被预测的,于是可以不可持久化,提前记录未来要访问的值即可,时间复杂度 \(O(n)\)

posted @ 2026-03-22 17:17  yangbaich  阅读(10)  评论(0)    收藏  举报