首页 > 代码库 > hdu 4920 快速矩阵相乘 以后得换一种写法了
hdu 4920 快速矩阵相乘 以后得换一种写法了
【题意】:求两个矩阵相乘的结果
1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 using namespace std; 5 #define mod 3 6 7 int a[808][802],b[808][802]; 8 int c[808][808],n; 9 10 void mul()11 {12 for(int i=0; i<n; i++)13 for(int j=0; j<n; j++)14 if(a[i][j])15 {16 for(int k=0; k<n; k++)17 //if(b[j][k]) 加了这一句居然就超时了 实在不晓得是为什么18 c[i][k]=(c[i][k]+a[i][j]*b[j][k]);19 //取模运算是最耗时的运算 经计算这里不会超过数据范围 所以不要一步一取模,最后一步来取余就可以了20 }21 }22 23 int main()24 {25 int i,j,m,t;26 while(~scanf("%d",&n))27 {28 for(i=0; i<n; i++)29 for(j=0; j<n; j++)30 {31 scanf("%d",&a[i][j]);32 a[i][j]%=3;33 }34 for(i=0; i<n; i++)35 for(j=0; j<n; j++)36 {37 scanf("%d",&b[i][j]);38 b[i][j]%=3;39 }40 memset(c,0,sizeof(c));41 mul();42 for(i=0; i<n; i++)43 {44 printf("%d",c[i][0]%3);45 for(j=1; j<n; j++)46 printf(" %d",c[i][j]%3);47 printf("\n");48 }49 }50 return 0;51 }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。