Time Limit: 3000MS | Memory Limit: 131072K | |
Total Submissions: 7302 | Accepted: 3143 |
Description
Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak.
Input
The input contains exactly one test case. The first line of input contains three positive integers n (n ≤ 30), k (k ≤ 109) and m (m < 104). Then follow n lines each containing n nonnegative integers below 32,768, giving A’s elements in row-major order.
Output
Output the elements of S modulo m in the same way as A is given.
Sample Input
2 2 4 0 1 1 1
Sample Output
1 2 2 3
Source
分析:哎。。。认真线性代数啊
转:
解法一
Let B= A I
0 I
B^(k+1) = A^k I+A+...+A^k
0 I
Accepted2184K250MSG++
解法二
设f[n]=A^1+A^2+....A^n;
当n是偶数,f[n]=f[n/2]+f[n/2]*A^(n/2);
但n是奇数,f[n]=f[n-1]+A^(n);
我的代码(解法一加一点优化)94ms好慢啊: