Problem Description
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.
Input
The 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 Aij. The next n lines describe the matrix B in similar format (0≤Aij,Bij≤109).
Output
For each tests:
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 7
Sample Output
0 0 1 2 1 对于二维数组,按行取比按列取要快 真心被逗了 不过也算涨了姿势。。。#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; int a[805][805],b[805][805],c[805][805]; int main() { int n,i,j,k; while(~scanf("%d",&n)) { for(i = 0; i<n; i++) for(j = 0; j<n; j++) { scanf("%d",&a[i][j]); a[i][j]%=3; c[i][j] = 0; } for(i = 0; i<n; i++) for(j = 0; j<n; j++) { scanf("%d",&b[i][j]); b[i][j]%=3; } for(i = 0; i<n; i++) for(j = 0; j<n; j++) { if(!a[i][j]) continue; for(k = 0; k<n; k++) c[i][k] = c[i][k]+a[i][j]*b[j][k]; } for(i = 0; i<n; i++) { for(j = 0; j<n; j++) if(j==n-1) printf("%d\n",c[i][j]%3); else printf("%d ",c[i][j]%3); } } return 0; }
HDU4920:Matrix multiplication
时间: 2024-10-19 18:23:33