利用矩阵快速幂计算T^k*f, 其中T=n*n矩阵, f=n*1向量, t组数据.
法一:每组数据分别计算,矩阵乘法o(n^3),计算o(logk)次,最后T^k乘f,总复杂度o(tn^3logk).
法二:预处理T,T^2,...,T^(2^[log(max k)]), 对每组数据,设T^k=T^a1 * T^a2 * ... * T^an, 分别计算f=T^ai * f, 每次乘法o(n^2),总和o(n^2logk),预处理o(n^3logk),总复杂度o(max(t,n) * n^2logk).




Comments | NOTHING