Matrix multiplication
来源:互联网 发布:编程入门教材 编辑:程序博客网 时间:2024/05/22 13:56
Matrix multiplication
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1155 Accepted Submission(s): 493
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.
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).
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.
Print n lines. Each of them contain n integers -- the matrix A×B in similar format.
Sample Input
10120 12 34 56 7
Sample Output
00 12 1
今天是多校联合的第5场。哎,很久没留足迹了。颇感内疚呀!
题意很简单就求两个矩阵的乘积。当场就写了一个N^3的代码。tle,然后我就想到:strassen矩阵乘法,strassen矩阵乘法算法的复杂度为N^2.81优化了很多,但还是tle。我很无语了。这个也能超时。
最后学弟写了一个同样3方的代码,用c++能过。我不懂数据是怎么给的,感觉很是意外呀!代码也不解释,用C++能过。
悲催呀,G++会超时的
#include<stdio.h>#include<cstring>#define N 805int n;int a[N][N],b[N][N],c[N][N];int main() { int i,j,k; while(scanf("%d",&n)!=EOF) { for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d",&a[i][j]); a[i][j]=a[i][j]%3; } } for(i=0; i<n; i++) { for(j=0; j<n; j++) { scanf("%d",&b[i][j]); b[i][j]=b[i][j]%3; } } memset(c,0,sizeof(c)); for(k=0; k<n; k++) { for(i=0; i<n; i++) { if(a[k][i]==0) continue; for(j=0; j<n; j++) { // if(b[i][j]==0) continue;//加了就超时,不知道为什么吗,那原理说这更优化,不懂 c[k][j]=(c[k][j]+a[k][i]*b[i][j])%3; } } } for(i=0; i<n; i++) { for(j=0; j<n; j++) { printf("%d",c[i][j]%3); if(j<n-1) printf(" "); } printf("\n"); } } return 0;}
0 0
- Matrix Multiplication
- Matrix Multiplication
- Matrix Multiplication
- Matrix Multiplication
- Matrix multiplication
- Matrix multiplication
- Matrix Chain Multiplication
- zoj1094 Matrix Chain Multiplication
- Matrix chain multiplication problem
- POJ 3318 Matrix Multiplication
- Matrix Chain Multiplication
- uva442 Matrix Chain Multiplication
- 3712. Matrix multiplication
- 442 - Matrix Chain Multiplication***
- poj Matrix Chain Multiplication
- poj 2890 Matrix Multiplication
- 442 - Matrix Chain Multiplication
- sgu 196 Matrix Multiplication
- 二维数组(二级指针的第二种内存模型)
- Spark学习笔记(三)-RDD(弹性分布式数据集)
- ListView应用--SimpleAdapter
- Java中输入的用法
- python基础知识
- Matrix multiplication
- 在mfc的子线程中创建非模态的对话框出现的问题
- poj3744 Scout YYF I
- 敏捷自动化测试 (黑盒单元测试)
- 我找到了一个方向
- 我来说云计算
- public 等访问权
- Android L 对开发者意味着什么?
- 超级病毒“xxshenqi.[XX神器]”到底有多牛