HDU 4920 Matrix multiplication 题解(内存访问连续性/卡常)
题目链接
题目大意
多组输入,给你两个n×n的矩阵,要你求他们相乘%3的值
题目思路
这个题目主要是要了解内存访问连续化,要尽量每次访问连续的内存
所以第一种方法会超时,第二种则AC。一种卡常技巧
代码
#include<set>
#include<map>
#include<queue>
#include<stack>
#include<cmath>
#include<cstdio>
#include<vector>
#include<string>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<unordered_map>
#define fi first
#define se second
#define debug printf(" I am here\n");
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
const ll INF=0x3f3f3f3f3f3f3f3f;
const int maxn=1e3+5,inf=0x3f3f3f3f,mod=1e9+7;
const double eps=1e-10;
int n;
ll a[maxn][maxn],b[maxn][maxn],ans[maxn][maxn];
signed main(){
    while(scanf("%d",&n)!=-1){
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                scanf("%lld",&a[i][j]);
                ans[i][j]=0;
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                scanf("%lld",&b[i][j]);
            }
        }
        for(int i=1;i<=n;i++){
            for(int k=1;k<=n;k++){
                for(int j=1;j<=n;j++){
                    ans[i][j]=(ans[i][j]+a[i][k]*b[k][j])%3;
                }
            }
        }
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                printf("%lld%c",ans[i][j],j==n?'\n':' ');
            }
        }
    }
    return 0;
}
HDU 4920 Matrix multiplication 题解(内存访问连续性/卡常)的更多相关文章
- HDU 4920 Matrix multiplication(bitset)
		HDU 4920 Matrix multiplication 题目链接 题意:给定两个矩阵,求这两个矩阵相乘mod 3 思路:没什么好的想法,就把0的位置不考虑.结果就过了.然后看了官方题解,上面是用 ... 
- hdu 4920 Matrix multiplication bitset优化常数
		Matrix multiplication Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ... 
- HDU 4920 Matrix multiplication 矩阵相乘。稀疏矩阵
		Matrix multiplication Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ... 
- hdu 4920 Matrix multiplication(矩阵乘法)2014多培训学校5现场
		Matrix multiplication Time ... 
- HDU 4920 Matrix multiplication(矩阵相乘)
		各种TEL,233啊.没想到是处理掉0的情况就能够过啊.一直以为会有极端数据.没想到居然是这种啊..在网上看到了一个AC的奇妙的代码,经典的矩阵乘法,仅仅只是把最内层的枚举,移到外面就过了啊...有点 ... 
- HDU 4920 Matrix multiplication(bitset优化)
		题目链接 Matrix multiplication 求矩阵A和B相乘的结果. 因为答案只要对3取模,所以我们可以通过一些方法来加速计算. 我们对两个矩阵各开两个bitset,分别存储模3余1和模3余 ... 
- Hdu 4920矩阵乘法(内存访问的讲究)
		题目链接 Matrix multiplication Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K ( ... 
- HDU 4920 Matrix multiplication (硬件优化)
		题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4920 解题报告:求两个800*800的矩阵的乘法. 参考这篇论文:http://wenku.baidu ... 
- hdu - 4920 - Matrix multiplication(缓存优化+开挂)
		题意:求两个n x n的矩阵相乘后模3的结果,n <= 800. 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4920 -->>呀呀 ... 
随机推荐
- 01 . Go框架之Gin框架从入门到熟悉(路由和上传文件)
			Gin框架简介 Gin是使用Go/Golang语言实现的HTTP Web框架, 接口简洁, 性能极高,截止1.4.0版本,包含测试代码,仅14K, 其中测试代码9K, 也就是说测试源码仅5k左右, 具 ... 
- mysql-connector-java各种版本下载地址
			mysql-connector-java下载地址: http://mvnrepository.com/artifact/mysql/mysql-connector-java 目录 1.进去后选择自己的 ... 
- pandas dataframe 时间字段 diff 函数
			pandas pandas 是数据处理的利器,非常方便进行表格数据处理,用过的人应该都很清楚,没接触的可以自行查阅pandas 官网. 需求介绍 最近在使用 pandas 的过程中碰到一个问题,需要计 ... 
- Java学习的第三十天
			1.遇到打印文件使用打印流PrintStream 使用PrintStream写入数据 2.没有问题 3.明天学习用RandomAccessFile随机访问文件 
- UbuntuStudio20.04安装教程(双系统安装,windows10已安装)
			硬件和系统: acer4750(原i3换i7,加固态硬盘200多G,原机械硬盘500G由光驱改装,内存由2G增加为6G)2010年购买3300,性价比高,硬件升级后2020年不过时 windows10 ... 
- LWJGL3的内存管理,第三篇,剩下的两种策略
			LWJGL3的内存管理,第三篇,剩下的两种策略 上一篇讨论的基于 MemoryStack 类的栈上分配方式,是效率最高的,但是有些情况下无法使用.比如需要分配的内存较大,又或许生命周期较长.这时候就可 ... 
- windows 查看内存
			MEMORYSTATUSEX statex; statex.dwLength = sizeof (statex); GlobalMemoryStatusEx (&statex); _tprin ... 
- 对于button元素的理解
			button有四种常用的类型: submit: 此按钮将表单数据提交给服务器.如果未指定属性,或者属性动态更改为空值或无效值,则此值为默认值. reset: 此按钮重置所有组件为初始值. butt ... 
- ElasticSearch 集群基本概念及常用操作汇总(建议收藏)
			内容来源于本人的印象笔记,简单汇总后发布到博客上,供大家需要时参考使用. 原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 目录: Elas ... 
- Docker系列04—跨主机网络方案(overlay/weave)
			在前面详细讲解了几种网络模式:none,host,bridge,container.他们解决了单个主机间的容器的通信问题,并不能实现多个主机容器之间的通信. 跨主机网络方案包括两大类: 1,docke ... 
