1 0 1 2 0 1 2 3 4 5 6 7
0 0 1 2 1
题解及代码:
/* 签到题,简单的矩阵相乘,注意元素0的处理就不会超时了。 */ #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int mod=3; int a[810][810],b[810][810]; int temp[810][810]; void multiple(int n,int p) { int i,j,k; for(i=0; i<n; i++) for(j=0; j<n; j++) { if(a[i][j]!=0) for(k=0; k<n; k++) temp[i][k]=(temp[i][k]+a[i][j]*b[j][k])%p; } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) if(j==0) printf("%d",temp[i][j]); else printf(" %d",temp[i][j]); puts(""); } } void init(int n) { memset(temp,0,sizeof(temp)); for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&a[i][j]); a[i][j]%=3; } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { scanf("%d",&b[i][j]); b[i][j]%=3; } } } int main() { int n; while(cin>>n) { init(n); multiple(n,mod); } return 0; }
hdu 4920 Matrix multiplication,布布扣,bubuko.com
hdu 4920 Matrix multiplication
原文:http://blog.csdn.net/knight_kaka/article/details/38388777