cf222 E. Decoding Genome(矩阵快速幂优化dp)

题意:

求用m种字符组成长度为n的字符串的方案数。有k个限制,每个限制 "ab" 表示字符b不能紧接在a的后面。

\(1\le n \le 1e15, 1\le m \le 52\)

思路:

\(f(i,j)\) 表示放了 \(i\) 个字符,第 \(i\) 个字符是 \(j\) 的方案数,则 \(f(i,j) = \sum\limits _{k=1}^m f(i-1,k)*[j能紧接在k后]\)

n太大了,想办法log一下。建立 m×m 矩阵 \(A\),矩阵元素 \(a_{ij}=1/0\) 表示字符 \(j\) 能/否紧接在 \(i\) 之后。

单行矩阵 \(F_1=(1 ,1,1,1,\cdots )\),最后的 \(F_n=F_1\times A^{n-1}\)。输出 \(F_n\) 的元素总和。

posted @ 2022-02-11 17:55  Bellala  阅读(33)  评论(0编辑  收藏  举报