hdu 4920矩陣連乘
阿新 • • 發佈:2019-02-02
Given two matrices A and B of size n×n, find the product of them.
bobo hates big integers. So you are only asked to find the result modulo 3. InputThe input consists of several tests. For each tests:
The first line contains n (1≤n≤800). Each of the following n lines contain n integers -- the description of the matrix A. The j-th integer in the i-th line equals A ij . The next n lines describe the matrix B in similar format (0≤A ij,B ij≤10 9).
OutputFor each tests:
Print n lines. Each of them contain n integers -- the matrix A×B in similar format. Sample Input
bobo hates big integers. So you are only asked to find the result modulo 3. InputThe input consists of several tests. For each tests:
The first line contains n (1≤n≤800). Each of the following n lines contain n integers -- the description of the matrix A. The j-th integer in the i-th line equals A ij
Print n lines. Each of them contain n integers -- the matrix A×B in similar format. Sample Input
1 0 1 2 0 1 2 3 4 5 6 7Sample Output
0 0 1
2 1
// // main.cpp // 160929 // // Created by liuzhe on 17/3/30. // Copyright © 2016年 my_code. All rights reserved. // //#include <bits/stdc++.h> #include <iostream> #include <algorithm> #include <cstdio> #include <cmath> #include <cstring> #include <string> #include <map> #include <set> #include <queue> #include <deque> #include <list> #include <bitset> #include <stack> #define ll long long #define mod 3 using namespace std; ll a[805][805],b[805][805],c[805][805]; int main() { int n; while(~scanf("%d",&n)) //while(cin>>n) { for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%lld",&a[i][j]); a[i][j]=a[i][j]%mod; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { scanf("%lld",&b[i][j]); b[i][j]=b[i][j]%mod; } memset(c,0,sizeof(c)); for(int i=1;i<=n;i++) { for(int k=1;k<=n;k++) { for(int j=1;j<=n;j++) { c[i][j]+=(a[i][k]*b[k][j]); } //c[i][j]=c[i][j]%mod; } } for(int i=1;i<=n;i++) { for(int j=1;j<n;j++) { printf("%lld ",c[i][j]%mod); } printf("%lld\n",c[i][n]%mod); } } return 0; }