A1041. 矩阵乘法
2018-02-12 23:59
141 查看
A1041. 矩阵乘法时间限制:1.0s 内存限制:512.0MB 问题描述 给定一个N阶矩阵A,输出A的M次幂(M是非负整数)
例如:
A =
1 2
3 4
A的2次幂
7 10
15 22输入格式 第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开样例输入2 2
1 2
3 4样例输出7 10
15 22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int n,m;
while((scanf("%d %d",&n,&m))!=EOF){
int a[30][30]={0},tmp[30][30]={0},ans[30][30]={0};
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d ",&a[i][j]);
tmp[i][j]=a[i][j];
ans[i][j]=a[i][j];
}
}
if(m==0){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
printf("1 ");
else
printf("0 ");
}
printf("\n");
}
}
else{
while(m>1){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
tmp[i][j]=ans[i][j];
}
}
memset(ans,0,sizeof(ans));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
ans[i][j]+=a[i][k]*tmp[k][j];
}
}
}
m--;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d ",ans[i][j]);
}
printf("\n");
}
}
}
system("pause");
return 0;
}
例如:
A =
1 2
3 4
A的2次幂
7 10
15 22输入格式 第一行是一个正整数N、M(1<=N<=30, 0<=M<=5),表示矩阵A的阶数和要求的幂数
接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值输出格式 输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。相邻的数之间用一个空格隔开样例输入2 2
1 2
3 4样例输出7 10
15 22
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(){
int n,m;
while((scanf("%d %d",&n,&m))!=EOF){
int a[30][30]={0},tmp[30][30]={0},ans[30][30]={0};
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
scanf("%d ",&a[i][j]);
tmp[i][j]=a[i][j];
ans[i][j]=a[i][j];
}
}
if(m==0){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
if(i==j)
printf("1 ");
else
printf("0 ");
}
printf("\n");
}
}
else{
while(m>1){
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
tmp[i][j]=ans[i][j];
}
}
memset(ans,0,sizeof(ans));
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
for(int k=0;k<n;k++){
ans[i][j]+=a[i][k]*tmp[k][j];
}
}
}
m--;
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%d ",ans[i][j]);
}
printf("\n");
}
}
}
system("pause");
return 0;
}
相关文章推荐
- [codevs 1482]路线统计(矩阵乘法)
- 蓝桥杯算法提高 矩阵乘法
- 矩阵的乘法
- [BZOJ2326][HNOI2011]数学作业-矩阵乘法
- 算法导论之四矩阵乘法的Strassen算法
- HLG-1375(矩阵乘法+快速幂)
- SPOJ 1676 矩阵乘法+DP
- java实现矩阵乘法
- 蓝桥杯——矩阵乘法
- OpenBLAS项目与矩阵乘法优化 | AI 研习社
- hihoCoder #1143 : 骨牌覆盖问题·一(矩阵乘法)
- Cogs 1708. 斐波那契平方和(矩阵乘法)
- poj 3420 Quad Tiling 【矩阵乘法】
- 矩阵的乘法
- 【图像处理】NEON编程3 矩阵乘法
- 矩阵链乘法确定矩阵的最佳计算顺序
- 矩阵乘+高斯消元专题小结【矩阵乘法】
- bzoj1009: [HNOI2008]GT考试 矩阵乘法
- BestCoder Round #68 (div.1) B 矩阵乘法优化DP
- 用MapReduce实现矩阵乘法