HDU 4920(Matrix multiplication-矩阵乘法优化)
来源:互联网 发布:网络女主播喝酒洗澡 编辑:程序博客网 时间:2024/05/16 03:09
Matrix multiplication
Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 3647 Accepted Submission(s): 1522
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
Author
Xiaoxu Guo (ftiasch)
Source
2014 Multi-University Training Contest 5
Recommend
We have carefully selected several similar problems for you: 5426 5425 5424 5423 5422
直接矩阵乘 O(n^3) 800^3=5120,0000 TLE
所以利用mod3的性质 稍加优化
#include<bits/stdc++.h>using namespace std;#define For(i,n) for(int i=1;i<=n;i++)#define Fork(i,k,n) for(int i=k;i<=n;i++)#define Rep(i,n) for(int i=0;i<n;i++)#define ForD(i,n) for(int i=n;i;i--)#define ForkD(i,k,n) for(int i=n;i>=k;i--)#define RepD(i,n) for(int i=n;i>=0;i--)#define Forp(x) for(int p=pre[x];p;p=next[p])#define Forpiter(x) for(int &p=iter[x];p;p=next[p]) #define Lson (o<<1)#define Rson ((o<<1)+1)#define MEM(a) memset(a,0,sizeof(a));#define MEMI(a) memset(a,127,sizeof(a));#define MEMi(a) memset(a,128,sizeof(a));#define INF (2139062143)|#define MAXN (800+10)#define F (3)#define pb push_back#define mp make_pair typedef long long ll;ll mul(ll a,ll b){return (a*b)%F;}ll add(ll a,ll b){return (a+b)%F;}ll sub(ll a,ll b){return (a-b+llabs(a-b)/F*F+F)%F;}void upd(ll &a,ll b){a=(a%F+b%F)%F;}int n,a[MAXN][MAXN],b[MAXN][MAXN],c[MAXN][MAXN];int main(){//freopen("j.in","r",stdin);while(cin>>n) {For(i,n) For(j,n) scanf("%d",&a[i][j]),a[i][j]%=3;For(i,n) For(j,n) scanf("%d",&b[i][j]),b[i][j]%=3,c[i][j]=0;For(i,n) For(k,n)if (a[i][k]) For(j,n) c[i][j]=(c[i][j]+a[i][k]*b[k][j])%3;For(i,n) {For(j,n-1) printf("%d ",c[i][j]);printf("%d\n",c[i][n]);}}return 0;}
0 0
- HDU 4920(Matrix multiplication-矩阵乘法优化)
- Hdu 4920 Matrix multiplication[矩阵乘法的时间复杂度优化]
- HDU 4920 Matrix multiplication(矩阵乘法)
- hdu 4920 Matrix multiplication(矩阵乘法)
- HDU 4920 Matrix multiplication(矩阵乘法)
- HDU 4920 Matrix multiplication(矩阵优化)
- HDU 4920 Matrix multiplication(稀疏矩阵的乘法)不优化很容易TLE
- 【4920Matrix multiplication】矩阵乘法优化+输入挂
- HDU 4920 Matrix multiplication(矩阵相乘小优化)
- 【城会玩】hdu 4920 Matrix multiplication【矩阵相乘优化】
- hdu 4920 Matrix multiplication 多校第五场 稀疏矩阵乘法
- HDU 4920 Matrix multiplication(矩阵乘法,cin,cout超时呀)
- hdu 4920 Matrix multiplication (矩阵相乘)
- HDU 4920 Matrix multiplication(矩阵相乘)
- hdu 4920 Matrix multiplication(矩阵坑题)
- 【HDU】4920 - Matrix multiplication(矩阵相乘)
- hdu4920 Matrix multiplication [矩阵乘法 压位 ]
- sgu196:Matrix Multiplication(矩阵乘法-->图)
- DIV+CSS参数大全
- 【Free】有关free释放的的案例
- 最大01子矩阵相关
- Spring data 规范
- Linux 内核编程之文件系统 VFS中的目录项对象和文件对象 http://www.linuxidc.com/Linux/2011-02/32127p2.htm
- HDU 4920(Matrix multiplication-矩阵乘法优化)
- 链表的增删改查
- Java入门-核心机制
- 三、NoteEditor.java文件学习笔记
- call和apply
- 隐藏实施过程
- 后缀数组 - hdu5008 Boring String Problem
- HDU 5113 Black And White (dfs)
- QNX驱动开发——SD卡SD模式开发实录