1 条题解
-
0
题解
思路
序列 满足 阶线性递推 。设其转移矩阵为 ,则一次切分中各段数值之和为 时,贡献由 决定。矩阵幂满足 ,因此可以直接对所有切分的矩阵幂求和。
做法
令 为前 个字符所有切分对应的 之和,。若最后一段为 ,其十进制值为 ,则
从左到右扩展一个十进制数时,若旧值为 、新数字为 ,则
部分分
当 时恒有 ,答案只等于切分数 。当 时可以枚举所有切分。当 时可直接使用至多 的矩阵完成上述 DP。
商环优化
矩阵 的特征关系为
因此任意 都能唯一表示为次数小于 的多项式。两个多项式相乘后,把每个 按上式从高次向低次消去即可。一次乘法只需 ,而十次幂可由平方得到。
最终 。预先计算 ,答案就是 。
正确性
每个切分有唯一的最后一段起点 。归纳假设 恰好包含前缀的全部切分,右乘最后一段的 后指数相加,恰好得到完整切分的段和;对所有 累加既无遗漏也无重复。商环化简只使用转移矩阵满足的特征关系,不改变矩阵值,因此最终线性函数给出的就是所有 之和。
复杂度
共有 个最后段转移,每次多项式运算为 ,总时间复杂度 ,空间复杂度 。
- 1
信息
- ID
- 989
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者