POJ PKU 3233 矩阵快速幂
(2010-04-06 22:15:54)
标签:
pojpku3233教育 |
分类: 杂题 |
题目描述:Given a n × n matrix A and a positive integer k, find the sum S = A A2 A3 … Ak
我们知道,计算一个n阶矩阵的k次幂的复杂度是(logk * n^3),也就是说只需进行logk次的矩阵乘法。
例如求A^16
A^2 = A * A
A^4
A^8 = A^4 * A^4
A^16 = A^8 * A^8
只需要4次
下面就是怎样转化问题了
令
则 B^k = [
则矩阵B的k次方的有上角即为答案。
代码:
#include<iostream>
using namespace std;
int n, k, m, x[60][60], ans[60][60], n2;
void multi(int a[60][60], int b[60][60], int c[60][60])
{
}
void cpy(int a[60][60], int b[60][60])
{
}
void judge(int key, int t[60][60])
{