hdu4920Matrix multiplication (矩阵,bitset)
bobo hates big integers. So you are only asked to find the result modulo 3.
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).
Print n lines. Each of them contain n integers -- the matrix A×B in similar format.
0
1
2
0 1
2 3
4 5
6 7
0 1
2 1
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<string>
#include<bitset>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef long double ldb;
#define inf 99999999
#define pi acos(-1.0)
#define MOD 3
int n,m;
int data[4][805][805];
void solve()
{
int i,j,k;
for(i=0;i<n;i++){
for(j=0;j<m;j++){
data[3][i][j]=0;
}
}
for(i=0;i<n;i++){
for(k=0;k<m;k++){
if(data[1][i][k]>0){
for(j=0;j<m;j++){
data[3][i][j]=data[3][i][j]+data[1][i][k]*data[2][k][j];
}
}
}
}
}
int main()
{
int i,j;
while(scanf("%d",&n)!=EOF)
{
m=n;
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&data[1][i][j]);
data[1][i][j]%=3;
}
}
for(i=0;i<n;i++){
for(j=0;j<n;j++){
scanf("%d",&data[2][i][j]);
data[2][i][j]%=3;
}
}
solve();
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<n-1)printf("%d ",data[3][i][j]%3);
else printf("%d\n",data[3][i][j]%3);
}
}
}
return 0;
}
代码二:用bitset
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<vector>
#include<map>
#include<set>
#include<queue>
#include<stack>
#include<string>
#include<bitset>
#include<algorithm>
using namespace std;
typedef long long ll;
typedef long double ldb;
#define inf 99999999
#define pi acos(-1.0)
#define MOD 3
#define maxn 805
bitset<1000>bt[maxn][3],ct[maxn][3];
int main()
{
int n,m,i,j,c;
while(scanf("%d",&n)!=EOF)
{
for(i=1;i<=n;i++){
for(j=0;j<3;j++){
bt[i][j].reset();
ct[i][j].reset();
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
scanf("%d",&c);
bt[i][c%3].set(j);
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
scanf("%d",&c);
ct[j][c%3].set(i);
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
c=((bt[i][1]&ct[j][1]).count()+(bt[i][1]&ct[j][2]).count()*2+(bt[i][2]&ct[j][1]).count()*2+(bt[i][2]&ct[j][2]).count() )%3;
if(j==n)printf("%d\n",c);
else printf("%d ",c);
}
}
}
return 0;
}
hdu4920Matrix multiplication (矩阵,bitset)的更多相关文章
- HDU 4920 Matrix multiplication(bitset优化)
题目链接 Matrix multiplication 求矩阵A和B相乘的结果. 因为答案只要对3取模,所以我们可以通过一些方法来加速计算. 我们对两个矩阵各开两个bitset,分别存储模3余1和模3余 ...
- HDU 4920 Matrix multiplication(bitset)
HDU 4920 Matrix multiplication 题目链接 题意:给定两个矩阵,求这两个矩阵相乘mod 3 思路:没什么好的想法,就把0的位置不考虑.结果就过了.然后看了官方题解,上面是用 ...
- UVa 442 Matrix Chain Multiplication(矩阵链,模拟栈)
意甲冠军 由于矩阵乘法计算链表达的数量,需要的计算 后的电流等于行的矩阵的矩阵的列数 他们乘足够的人才 非法输出error 输入是严格合法的 即使仅仅有两个相乘也会用括号括起来 并且括号中 ...
- Codeforces 781D Axel and Marston in Bitland 矩阵 bitset
原文链接https://www.cnblogs.com/zhouzhendong/p/CF781D.html 题目传送门 - CF781D 题意 有一个 n 个点的图,有 m 条有向边,边有两种类型: ...
- HDU 4920 Matrix multiplication(矩阵相乘)
各种TEL,233啊.没想到是处理掉0的情况就能够过啊.一直以为会有极端数据.没想到居然是这种啊..在网上看到了一个AC的奇妙的代码,经典的矩阵乘法,仅仅只是把最内层的枚举,移到外面就过了啊...有点 ...
- Poj 3318 Matrix Multiplication( 矩阵压缩)
Matrix Multiplication Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 18928 Accepted: ...
- HDU 4920 Matrix multiplication 矩阵相乘。稀疏矩阵
Matrix multiplication Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/ ...
- POJ 3318 Matrix Multiplication(矩阵乘法)
题目链接 题意 : 给你三个n维矩阵,让你判断A*B是否等于C. 思路 :优化将二维转化成一维的.随机生成一个一维向量d,使得A*(B*d)=C*d,多次生成多次测试即可使错误概率大大减小. #inc ...
- UVA442 Matrix Chain Multiplication 矩阵运算量计算(栈的简单应用)
栈的练习,如此水题竟然做了两个小时... 题意:给出矩阵大小和矩阵的运算顺序,判断能否相乘并求运算量. 我的算法很简单:比如(((((DE)F)G)H)I),遇到 (就cnt累计加一,字母入栈,遇到) ...
随机推荐
- python学习笔记 | strftime()格式化输出时间
time模块 import time t = time.strftime("%Y-%m-%d %H:%M:%S") print(t) datetime模块 import datet ...
- Hbase 手动执行MajorCompation
说明: Major Compaction 的作用: 1.将一个Region下的所有StoreFile合并成一个StoreFile文件 2.对于删除.过期.多余版本的数据进行清除 由于MajorComp ...
- docker 镜像导入load、导出save以及重命名
docker 导入导出操作 save 保存(导出)镜像 # 把镜像打包成 .tar # -o 要保存路径.tar # > 要保存路径.tar # docker save 镜像id > /存 ...
- i春秋新春战疫—web—简单的招聘系统
打开靶机 打开后看到登录界面 利用万能密码,以admin身份登录 登录成功后看到如下界面 在Blank Page界面内发现注入点,抓包 保存在sqlmap目录下test.txt文件夹,使用sqlmap ...
- 使用 tke-autoscaling-placeholder 实现秒级弹性伸缩
背景 当 TKE 集群配置了节点池并启用了弹性伸缩,在节点资源不够时可以触发节点的自动扩容 (自动买机器并加入集群),但这个扩容流程需要一定的时间才能完成,在一些流量突高的场景,这个扩容速度可能会显得 ...
- CNN可视化技术总结(一)--特征图可视化
导言: 在CV很多方向所谓改进模型,改进网络,都是在按照人的主观思想在改进,常常在说CNN的本质是提取特征,但并不知道它提取了什么特征,哪些区域对于识别真正起作用,也不知道网络是根据什么得出了分类结果 ...
- Maven 基础详解
一.编写pom.xml文件 Maven项目的核心是pom.xml.POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等. ...
- It is thread-safe and idempotent, but not reentrant.
https://github.com/django/django/blob/master/django/apps/registry.py
- Why should I avoid blocking the Event Loop and the Worker Pool?
Don't Block the Event Loop (or the Worker Pool) | Node.js https://nodejs.org/en/docs/guides/dont-blo ...
- setTimeout、Promise、Async/Await 的区别
事件循环中分为宏任务队列和微任务队列其中setTimeout的回调函数放到宏任务队列里,等到执行栈清空以后执行promise.then里的回调函数会放到相应宏任务的微任务队列里,等宏任务里面的同步代码 ...