给定一个矩阵A 要求A + A^2 + A^3 +…. A^k; 
对于到n的等比矩阵求和 
如果n是偶数: 
 
如果n是奇数: 

#include<stdio.h>
#include<string.h>
#include<algorithm> using namespace std; const int maxn = ;
int mod = ;
int n, k; struct matrix {
int mat[maxn][maxn];
}; matrix mat_add(matrix A, matrix B) {
matrix ans;
for(int i=; i<n; i++) {
for(int j=; j<n; j++) {
ans.mat[i][j] = A.mat[i][j] + B.mat[i][j];
ans.mat[i][j] %= mod;
}
}
return ans;
} matrix mat_mul(matrix A, matrix B) {
matrix ans;
memset(ans.mat, , sizeof(ans.mat));
for(int i=; i<n; i++) {
for(int j=; j<n; j++) {
for(int k=; k<n; k++) {
ans.mat[i][j] += A.mat[i][k] * B.mat[k][j];
ans.mat[i][j] %= mod;
}
}
}
return ans;
} matrix mat_pow(matrix A, int b) {
matrix ans;
matrix p = A;
for(int i=; i<n; i++) {
for(int j=; j<n; j++) {
ans.mat[i][j] = (i == j);
}
}
while(b) {
if(b & )
ans = mat_mul(ans, p);
p = mat_mul(p, p);
b >>= ;
}
return ans;
} matrix work(matrix A, int m) {
if(m == )
return A;
matrix t = work(A, m/);
if(m & ) {
matrix cur = mat_pow(A, m/+);
t = mat_add(t, mat_mul(t, cur));
t = mat_add(t, cur);
} else {
matrix cur = mat_pow(A, m/);
t = mat_add(t, mat_mul(t, cur));
}
return t;
} int main() {
while(scanf("%d%d", &n, &k), n) {
matrix A;
for(int i=; i<n; i++) {
for(int j=; j<n; j++) {
int x;
scanf("%d", &x);
A.mat[i][j] = x % ;
}
}
matrix ans = work(A, k);
for(int i=; i<n; i++) {
for(int j=; j<n; j++) {
printf("%d%c", ans.mat[i][j], j==n- ? '\n' : ' ');
}
}
printf("\n");
}
return ;
}

UVA 11149-Power of Matrix(等比矩阵求和)的更多相关文章

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

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

  2. UVa 11149 Power of Matrix(倍增法、矩阵快速幂)

    题目链接: 传送门 Power of Matrix Time Limit: 3000MS      Description 给一个n阶方阵,求A1+A2+A3+......Ak. 思路 A1+A2+. ...

  3. UVA 11149 Power of Matrix 快速幂

    题目链接: http://acm.hust.edu.cn/vjudge/contest/122094#problem/G Power of Matrix Time Limit:3000MSMemory ...

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

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

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

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

  6. UVA - 11149 Power of Matrix(矩阵倍增)

    题意:已知N*N的矩阵A,输出矩阵A + A2 + A3 + . . . + Ak,每个元素只输出最后一个数字. 分析: A + A2 + A3 + . . . + An可整理为下式, 从而可以用lo ...

  7. UVA 11149 Power of Matrix 构造矩阵

    题目大意:意思就是让求A(A是矩阵)+A2+A3+A4+A5+A6+······+AK,其中矩阵范围n<=40,k<=1000000. 解题思路:由于k的取值范围很大,所以很自然地想到了二 ...

  8. UVA 11149 Power of Matrix

    矩阵快速幂. 读入A矩阵之后,马上对A矩阵每一个元素%10,否则会WA..... #include<cstdio> #include<cstring> #include< ...

  9. Power of Matrix(uva11149+矩阵快速幂)

    Power of Matrix Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit St ...

  10. UVA 11149.Power of Matrix-矩阵快速幂倍增

    Power of Matrix UVA - 11149       代码: #include <cstdio> #include <cstring> #include < ...

随机推荐

  1. VS2008引入头文件包含目录和lib库目录

    全局级别的引入 为VS所有项目设置包含目录和库目录,对所有项目都有效 如下图所示:工具-选项-项目和解决方案-VC++目录-包含文件:在此添加头文件目录即可 工具-选项-项目和解决方案-VC++目录- ...

  2. Mongo安装与使用

    MongoDB[1]  是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. mongoDB MongoDB[2]  是一个介于关系数据库和非关系数 ...

  3. tomcat server.xml各个端口的作用

    <Server port="8005" shutdown="SHUTDOWN"> <!-- port:指定一个端口,这个端口负责监听关闭Tom ...

  4. mybatis事务管理机制详解

    1.mybatis事务的配置和使用 mybatis事务有两种使用方式: (a):使用JDBC的事务管理机制:即使用java.Sql.Connection对象完成对事务的提交,回滚和关闭操作. (b): ...

  5. from组件补充

    一.定义的规则 class TeacherForm(Form): #必须继承Form # 创建字段,本质上是正则表达式 username = fields.CharField( required=Tr ...

  6. jquery 设置cookie、删除cookie、获取cookie

    1.引入jquery.js <script src="//cdn.bootcss.com/jquery/1.12.4/jquery.js"></script> ...

  7. linux之ssh互信

    1.如果你是之作root用户互信的话,直接一路执行如下命令就行. 1.切换你需要互信的账户 su hadoop1 2.执行命令,一路回车即可(在当前用的宿主用户目录下的.ssh目录下生成公钥和秘钥id ...

  8. xadmin快速搭建后台管理系统

    一.xadmin的特点: 1.基于Bootstrap3:Xadmin使用Bootstrap3.0框架精心打造.基于Bootstrap3,Xadmin天生就支持在多种屏幕上无缝浏览,并完全支持Boots ...

  9. WPF通过DynamicResource实现给界面动态更换皮肤

    在我们的程序中有时候需要去实现动态更换皮肤的效果,从而完成一些个性化的设置,那么我们究竟怎样去实现动态换皮肤的效果呢?那么我们经常用到的就是设置不同的Style,并且在主程序的xaml文件中通过Dyn ...

  10. React Native & Android & iOS

    React Native & Android & iOS React Native & Android & iOS https://facebook.github.io ...