CF1895F Fancy Arrays 题解

考虑到 x40x\le 40,肯定是要从这上面考虑的。

我们把存在性容斥掉,答案为总情况数减去所有数在 [0,x)[0,x) 的情况数再减去所有数在 (x+k1,+)(x+k-1,+\infty) 的情况。

考虑第一部分和第三部分一起看。

绝对值转成差分序列 bb,那么 bi[k,k]b_i\in[-k,k],即只有 2k+12k+1 种取值。

而第一部分减去第三部分等价于原序列的最小值在 [0,x+k1][0,x+k-1]

则这种情况的方案数为 (x+k)×(2k+1)n1(x+k)\times (2k+1)^{n-1}

剩下的部分就显而易见了。

设计 dp,设 fi,jf_{i,j} 表示所有数在 [0,x)[0,x) 且相邻差 k\le k 的序列,第 ii 位为 jj 的方案数。

转移方式固定,矩阵乘法加速转移即可。

时间复杂度 O(x3logn)\mathcal O(x^3\log n)

posted @ 2023-11-07 21:59  蒟蒻orz  阅读(1)  评论(0编辑  收藏  举报  来源