其实只要考虑长度为 2 的子串不能出现就好了
设 f[i][j] 表示考虑前 i 个字符,第 i 个字符即末位为 j 时的方案数
f[i][j]=∑k=025f[i][j]=\sum\limits_{k=0}^{25}f[i][j]=k=0∑25f[i-1][k]·b[k][j]
其中 b[k][j] 表示 kj 这个子串能否出现
答案 ans = ∑j=025f[n][j]\sum\limits_{j=0}^{25}f[n][j]j=0∑25f[n][j]
非常简单的递推式,但发现 n 高达 101510^{15}1015,不难想到矩阵快速幂加速运算
注册一个 SDSY 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 SDSY 通用账户