日志-2025-6

Week 1

2025.6.10

P7576 紫

首先考虑暴力 DP ,记 dpi,j,kdp_{i,j,k} 为前 ii 个数,第 ii 个数加 jj ,操作次数为 kk 序列权值之和。

那么有:

dpi,j,k=x=1jdpi1,x,k(jx)+x=j+1tdpi1,x,kdp_{i,j,k}= \sum _{x=1}^j dp_{i-1,x,k-(j-x)}+\sum_{x=j+1}^t dp_{i-1,x,k}

注意到一个状态是有效的,当且仅当 jkj \le k ,所以对于每一个 ii ,真正有用的 dpdp 值至多不会超过 1010 个。

于是我们就可以考虑把每个 ii 换成矩阵。

考虑这道题怎么做,对每个位置维护一个转移矩阵,然后使用线段树维护区间乘法就可以了。

时间复杂度:O(nt6+qlognt6)O(nt^6+q \log n t^6)

发现会被卡掉,于是考虑优化。

在每次询问的时候,定义一个向量,然后用向量乘上线段树上的 logn\log n 个区间即可。