链接:
题意:给一个N*N的矩阵(N<=30),求S = A + A^2 + A^3 + … + A^k(k<=10^9)。
思路:非常明显直接用矩阵高速幂暴力求和的方法复杂度O(klogk)。肯定会超时。我採用的是二分的方法, A + A^2 + A^3 + … + A^k=(1+A^(k/2)) *(A + A^2 + A^3 + … + A^(k/2))。这样就能够提出一个(1+A^(k/2)),假设k是奇数,单独处理A^k。
代码:
#include #include #include #include #include