比较符合我的弱点。
考虑到给你 \(a\) 的话这个东西怎么求,相当于现在给你一个序列 \(a\),求其中所有不同子序列个数。
考虑增量递推,假设目前要加入一个字符 \(x\),那么考虑会算重哪些子序列,一定是也以 \(x\) 结尾的子序列,具体来说,考虑设 \(f_{i, j}\) 为枚举到第 \(i\) 位结尾为 \(j\) 的个数,那么有 \(f_{i, j} = \sum f_{i - 1, k} + 1\)。
比较容易将这个过程用矩阵描述,这是很自然的。
接下来就到了观察部分了,我们发现对于某些 \(x, y\),\([x, x + k^z - 1] = [y, y + k^z - 1]\),这一段是可以直接相乘的,接下来的步骤是简单的。