HDU 4920 Matrix multiplication
2015-08-11 10:33
357 查看
Matrix multiplication
Time Limit: 2000msMemory Limit: 131072KB
This problem will be judged on HDU. Original ID: 4920
64-bit integer IO format: %I64d Java class name: Main
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
Source
2014 Multi-University Training Contest 5解题:利用cache进行加速。。
#include <bits/stdc++.h> using namespace std; typedef long long LL; const int maxn = 810; int a[maxn][maxn],b[maxn][maxn],c[maxn][maxn]; int main() { int n; while(~scanf("%d",&n)) { memset(c,0,sizeof c); 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; } for(int i = 0; i < n; ++i) for(int k = 0; k < n; ++k) for(int j = 0; j < n; ++j) c[i][j] += a[i][k]*b[k][j]; for(int i = 0; i < n; ++i) { for(int j = 0; j + 1 < n; ++j) printf("%d ",c[i][j]%3); printf("%d\n",c[i][n-1]%3); } } return 0; }
View Code
相关文章推荐
- exit
- 数组
- [转]iOS UILabel自定义行间距时获取高度
- 并查集(转)
- layoutSubViews调用时机(转载的基础上添加一些自己的总结)
- struts2常用的Constant总结
- web之HTML详解
- Ext 动态添加grid 列数
- hdoj 1233 还是畅通工程【最小生成树 kruskal && prim】
- 深入Spring IOC源码之Resource
- [leetcode-100]Same Tree(C)
- android获取设备屏幕大小的方法
- 20-07-其他对象API(Date类-练习)
- 用c#编写爬虫在marinetraffic下载船只图片
- 设计模式之抽象工厂模式
- PHP面向对象(OOP):PHP5接口技术(interface)
- 转正申请书,要如何写啊?
- eclipse向mysql插入中文乱码问题
- 骆驼命名法转小写分隔
- 日经社説 20150811 御巣鷹30年を機に空の安全を高めたい