zoukankan      html  css  js  c++  java
  • [蓝桥杯][基础练习VIP]矩阵乘法

    时间限制: 1Sec 内存限制: 128MB 提交: 113 解决: 30

    题目描述
    给定一个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
    //eg.注意如何处理m=0时候的情况,需要进行特判
    #include<cstring> #include<cstdio> #include<iostream> using namespace std; const int maxn = 31; typedef long long LL; LL A[maxn][maxn],B[maxn][maxn],C[maxn][maxn],E[maxn][maxn]; int main(void) { for(int i=1;i<=30;i++) E[i][i]=1; int n,m; cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { cin>>A[i][j]; B[i][j]=C[i][j]=A[i][j]; } if(m==0) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<E[i][j]<<" "; } cout<<endl; } } else { for(int k=0;k<m-1;k++) { for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { LL sum=0; for(int t=1;t<=n;t++) { sum+=A[i][t]*B[t][j]; } C[i][j]=sum; } } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) B[i][j]=C[i][j]; } for(int i=1;i<=n;i++) { for(int j=1;j<=n;j++) { cout<<C[i][j]<<" "; } cout<<endl; } } return 0; }
  • 相关阅读:
    jquery ajax 分页2
    jquery('tr','div')和jquery('tr,div')
    ajax代码及简单封装
    jquery ajax 分页
    iframe加载的文档高度
    Bootstrap
    web 打印分页技巧
    web 后台打印
    存储过程自动更新ID
    Leetcode 105
  • 原文地址:https://www.cnblogs.com/zuimeiyujianni/p/8932842.html
Copyright © 2011-2022 走看看