Matrix

#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
int n;
struct Matrix{
    long long a,b,v[105][105];
}A,B;
Matrix operator *(Matrix A,Matrix B){
    Matrix C;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            for(int k=1;k<=n;k++){
                C.v[i][j]+=(A.v[i][k]%1000000007)*(B.v[k][j]%1000000007);
                C.v[i][j]%=1000000007;
            }
        }
    }
    return C;
}
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            scanf("%lld",&A.v[i][j]);
        }
    }
    B=A*A;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            printf("%lld ",B.v[i][j]);
        }
        printf("\n");
    }
    return 0;
}

 

posted @ 2018-01-15 11:08  AL76  阅读(185)  评论(0编辑  收藏  举报