设S[k] = A + A^2 +````+A^k.

设矩阵T =

A[1] 0
E E

这里的E为n*n单位方阵,0为n*n方阵

令A[k] = A ^ k

矩阵B[k] =

A[k+1]
S[k]

则有递推式B[K] = T*B[k-1],即有B[k] = T^k*B[0],令S[0] 为n*n的0矩阵。

矩阵快速幂求出即可·····

还可以使用两次分治的方法····自行百度····

贴代码:

 #include<cstdio>
#include<cstring>
int n,k,p,d;//d = 2*n
struct matrix
{
int m[][];
} A;
matrix mul(int a[][],int b[][])
{
matrix ans;
memset(ans.m,,sizeof(ans.m));
for(int i=; i<=d; ++i)
for(int j=; j<=d; ++j)
for(int k=; k<=d; ++k)
ans.m[i][j] = (ans.m[i][j] + a[i][k]*b[k][j]%p)%p;
return ans;
}
matrix qPow()
{
matrix ans;
memset(ans.m,,sizeof(ans.m));
for(int i=; i<=d; ++i)
ans.m[i][i] = ;
while(k)
{
if(k&) ans = mul(ans.m,A.m);
A = mul(A.m,A.m);
k >>= ;
}
return ans;
}
int main()
{
// freopen("in.txt","r",stdin);
while(~scanf("%d%d%d",&n,&k,&p))
{
memset(A.m,,sizeof(A.m));
int t[][];
for(int i=; i<=n; ++i)
{
for(int j=; j<=n; ++j)
{
scanf("%d",&A.m[i][j]);
t[i][j] = A.m[i][j];
}
}
for(int i=n+; i<=*n; ++i)
A.m[i][i-n] = ,A.m[i][i] = ;
d = n<<;
matrix ans = qPow();
for(int i=n+; i<=d; ++i)
{
for(int j=; j<=n; ++j)
{
int res =;
for(int k=; k<=n; ++k)
res = (res + ans.m[i][k]*t[k][j]%p)%p;
if(j != ) printf(" ");
printf("%d",res);
}
puts("");
}
}
return ;
}

POJ 3233 Matrix Power Series 矩阵快速幂的更多相关文章

  1. POJ 3233 Matrix Power Series 矩阵快速幂+二分求和

    矩阵快速幂,请参照模板 http://www.cnblogs.com/pach/p/5978475.html 直接sum=A+A2+A3...+Ak这样累加肯定会超时,但是 sum=A+A2+...+ ...

  2. POJ 3233:Matrix Power Series 矩阵快速幂 乘积

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 18450   Accepted:  ...

  3. poj 3233 Matrix Power Series(矩阵二分,高速幂)

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 15739   Accepted:  ...

  4. POJ3233:Matrix Power Series(矩阵快速幂+二分)

    http://poj.org/problem?id=3233 题目大意:给定矩阵A,求A + A^2 + A^3 + … + A^k的结果(两个矩阵相加就是对应位置分别相加).输出的数据mod m.k ...

  5. poj 3233 Matrix Power Series 矩阵求和

    http://poj.org/problem?id=3233 题解 矩阵快速幂+二分等比数列求和 AC代码 #include <stdio.h> #include <math.h&g ...

  6. POJ3233 Matrix Power Series 矩阵快速幂 矩阵中的矩阵

    Matrix Power Series Time Limit: 3000MS   Memory Limit: 131072K Total Submissions: 27277   Accepted:  ...

  7. Poj 3233 Matrix Power Series(矩阵乘法)

    Matrix Power Series Time Limit: 3000MS Memory Limit: 131072K Description Given a n × n matrix A and ...

  8. POJ 3233 Matrix Power Series(矩阵高速功率+二分法)

    职务地址:POJ 3233 题目大意:给定矩阵A,求A + A^2 + A^3 + - + A^k的结果(两个矩阵相加就是相应位置分别相加).输出的数据mod m. k<=10^9.     这 ...

  9. POJ3233:Matrix Power Series(矩阵快速幂+递推式)

    传送门 题意 给出n,m,k,求 \[\sum_{i=1}^kA^i\] A是矩阵 分析 我们首先会想到等比公式,然后得到这样一个式子: \[\frac{A^{k+1}-E}{A-E}\] 发现要用矩 ...

随机推荐

  1. codeigniter在nginx 下支持pathinfo和去除index.php的方法

    as今天准备把网站搬迁到nginx上发现codeigniter框架在nginx上不能使用,后来发现是nginx不支持pathinfo,下面介绍怎么在nginx下开启pathinfo 开始pathinf ...

  2. NOIP 2013 提高组 day2 积木大赛

      积木大赛 描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为 n 的大厦,大厦可以看成由 n 块宽度为1的积木组成,第

  3. 基于K2 BPM的航空业核心业务管理解决方案

    基于K2 BPM平台的航空业解决方案,专注航空公司运行类.营销类.管理类所有解决方案. 查看完整版,请访问K2官网http://www.k2software.cn/zh-hans/aviation-i ...

  4. NCBI原始数据下载by Aspera Connect

    主要参考这篇文章: http://mp.weixin.qq.com/s?__biz=MzA5NjU5NjQ4MA==&mid=2651154488&idx=1&sn=e693a ...

  5. 2016-1-7第一个完整APP 私人通讯录的实现 5:保存数据

    一:登陆界面 1):用户点击登陆按钮并成功登陆后,根据此时的开关情况选择是否保存数据,代码如下: "]) { [self performSegueWithIdentifier:@" ...

  6. IOS(SystemConfiguration)框架中关于测试连接网络状态相关方法

    1. 在SystemConfiguration.famework中提供和联网相关的function, 可用来检查网络连接状态. 2. SC(SystemConfiguration)框架中关于测试连接网 ...

  7. NSAttributedString的用法

    标签: 以前看到这种字号和颜色不一样的字符串,想出个讨巧的办法就是“¥150”一个UILable,“元/位”一个UILable.今天翻看以前的工程,command点进UITextField中看到[at ...

  8. FR #1题解

    A. 建图跑最小费用最大流.分类讨论每种情况如何连边,费用怎么定. #include<iostream> #include<cstdio> #include<cstrin ...

  9. iOS 从相机或相册获取图片并裁剪

    今天遇到一个用户头像上传的问题,需要从相册或者相机中读取图片.代码很简单,抽取关键部分,如下: //load user image - (void)UesrImageClicked { UIActio ...

  10. 清除浮动1-使用:after 伪元素

    <!doctype html><html> <head> <meta charset="UTF-8"> <meta name= ...