代码:

 #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define maxn 44
#define mod 10
int n;
struct matrix{
int f[maxn][maxn];
};
matrix sum(matrix a,matrix b){
int i,j;
matrix s;
for(i=;i<n;i++)
for(j=;j<n;j++)
s.f[i][j]=(a.f[i][j]+b.f[i][j])%mod;
return s;
}
matrix mul(matrix a,matrix b){
int i,j,k;
matrix s;
memset(s.f,,sizeof(s.f));
for(i=;i<n;i++)
for(j=;j<n;j++)
for(k=;k<n;k++)
s.f[i][j]=(s.f[i][j]+a.f[i][k]*b.f[k][j])%mod;
return s;
}
matrix pows(matrix e,int b){
matrix s,a;
int i,j,k;
a=e;
for(i=;i<n;i++)
for(j=;j<n;j++)
if(i==j)s.f[i][j]=;
else s.f[i][j]=;
while(b){
if(b&)
s=mul(s,a);
a=mul(a,a);
b=b>>;
}
return s;
}
matrix work(matrix e,int k){
matrix s,a,b;
if(k==)
return e;
a=work(e,k/);
s=sum(a,mul(a,pows(e,k/)));
if(k&)
s=sum(s,pows(e,k));
return s;
}
int main(){
int k;
while( cin>>n>>k){
if(n==)
break;
int i,j,a;
matrix e;
for(i=;i<n;i++)
{
for(j=;j<n;j++)
{
cin>>a;
e.f[i][j]=a%;
}
}
e=work(e,k);
for(i=;i<n;i++)
{
cout<<e.f[i][];
for(j=;j<n;j++)
cout<<" "<<e.f[i][j];
cout<<endl;
}
cout<<endl;
}
return ;
}

UVA 11149.Power of Matrix-矩阵快速幂倍增的更多相关文章

  1. UVa 11149 Power of Matrix (矩阵快速幂,倍增法或构造矩阵)

    题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))( ...

  2. UVa 11149 Power of Matrix 矩阵快速幂

    题意: 给出一个\(n \times n\)的矩阵\(A\),求\(A+A^2+A^3+ \cdots + A^k\). 分析: 这题是有\(k=0\)的情况,我们一开始先特判一下,直接输出单位矩阵\ ...

  3. UVA 11149 - Power of Matrix(矩阵乘法)

    UVA 11149 - Power of Matrix 题目链接 题意:给定一个n*n的矩阵A和k,求∑kiAi 思路:利用倍增去搞.∑kiAi=(1+Ak/2)∑k/2iAi,不断二分就可以 代码: ...

  4. BZOJ.4180.字符串计数(后缀自动机 二分 矩阵快速幂/倍增Floyd)

    题目链接 先考虑 假设S确定,使构造S操作次数最小的方案应是:对T建SAM,S在SAM上匹配,如果有S的转移就转移,否则操作数++,回到根节点继续匹配S.即每次操作一定是一次极大匹配. 简单证明:假设 ...

  5. POJ 3233 Matrix Power Series(矩阵快速幂)

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

  6. POJ 3233 Matrix Power Series (矩阵快速幂+二分求解)

    题意:求S=(A+A^2+A^3+...+A^k)%m的和 方法一:二分求解S=A+A^2+...+A^k若k为奇数:S=(A+A^2+...+A^(k/2))+A^(k/2)*(A+A^2+...+ ...

  7. POJ 3233 Matrix Power Series (矩阵快速幂)

    题目链接 Description Given a n × n matrix A and a positive integer k, find the sum S = A + A^2 + A^3 + - ...

  8. 题解报告:poj 3233 Matrix Power Series(矩阵快速幂)

    题目链接:http://poj.org/problem?id=3233 Description Given a n × n matrix A and a positive integer k, fin ...

  9. UVA - 11149 (矩阵快速幂+倍增法)

    第一道矩阵快速幂的题:模板题: #include<stack> #include<queue> #include<cmath> #include<cstdio ...

随机推荐

  1. centos使用--ssh登陆

    1 安装openssh-server yum install openssh-server 2 登录 在配置好ssh后就可以只使用SSH密钥登录而不允许通过密码登录了,方法如下: 修改ssh配置: v ...

  2. 《Cracking the Coding Interview》——第3章:栈和队列——题目3

    2014-03-18 05:17 题目:设计一个栈,这个栈实际上由一列子栈组成.每当一个子栈的大小达到n,就新产生下一个子栈.整个栈群对外看起来就像普通栈一样,支持取顶top().压入push().弹 ...

  3. Webdriver--获得验证信息

    title:获得当前页面的标题 current_url:获得当前页面的URL text:前面提到过,获得标签对的文本信息 try: couseTitle = driver.find_element_b ...

  4. NodeJs04

    REST API的设计 前言 客户端通过请求URL,传递参数,去获取指定的数据,这就是API(ApplicationProgramInterface). API是前端和客户端操作后端数据的一种方式,一 ...

  5. 更换checkbox的原有样式

    通常情况下,各个浏览器对的样式不一致,并且不那么美观.所以有时候设计需要我们更换原有的样式: html: <span><input type="checkbox" ...

  6. [译]如何去除pandas dataframe里面的Unnamed的列?

    原文来源: https://stackoverflow.com/questions/43983622/remove-unnamed-columns-in-pandas-dataframe 问:我有一个 ...

  7. 【转】通过制作Flappy Bird了解Native 2D中的Sprite,Animation

    作者:王选易,出处:http://www.cnblogs.com/neverdie/ 欢迎转载,也请保留这段声明.如果你喜欢这篇文章,请点[推荐].谢谢! 引子 上一次我们讲了MonoBehaviou ...

  8. 电阻 (resistance)

    电阻 (resistance) 题目描述 每次小x物理作业没做完时,总是会去和老师交流感情,他们之间由此建立起来良好的师生关系.于是有一天,老师带着一道物理难题来见小x. 这道题给出了一个有n个电阻的 ...

  9. VS debug 简记

    近两日使用VS2013 Professional版本调试一个c源文件,过程中发现有几个bug,不知是IDE的问题还是我设置有问题,记在这里 1.下面的程序段A和B,区别只是for是否加花括号(标准C规 ...

  10. (翻译)FakeKaKao木马分析

    这是暑假时看到的一篇病毒分析文章,觉得里面有很多东西值得学习,刚好这几天有空就将它翻译了出来.有不对的地方请大家指正! FakeKaKao木马分析 Virus Bulletin是一个关于流氓软件与垃圾 ...