博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BNU 34974 MATLAB大法好
阅读量:6994 次
发布时间:2019-06-27

本文共 2199 字,大约阅读时间需要 7 分钟。

题目链接:

MATLAB大法好

 Time Limit: 8000ms
Memory Limit: 65536KB
64-bit integer IO format: 
%lld      Java class name: 
Main

MATLAB大法好。天灭C++,退C保平安,人在做,天在看,大段循环留祸患,内存泄露电脑灭,跳出递归保平安。

诚心诚念矩阵好,批量操作平安保,两行代码问题解,算法查错有保障。

众生都是码农命,老板PUSH忘前缘。MATLAB弟子说真相。教你脱险莫拒绝。上网搜索九评Bjarne Stroustrup。有*真*相。

大家都知道,用MATLAB做矩阵计算是很方便的。

比方你想算矩阵A的转置AT(即将A矩阵行列对调,元素aij变为aji),仅仅需敲A’ 就可以,而在C或C++中。你必须写循环或者——什么都不用做。再比方你想对A中的每一个元素都加1。在MATLAB中能够轻松地写作A.+1,而在C或C++中,你照样要写循环。

如今定义一个矩阵运算

假设A是一个 m × n 的矩阵,而B是一个 p × q 的矩阵,那么则是一个 mp × nq 的矩阵:

 

现给出矩阵A、B,求(AB)((AT).+1(BT).+1)。当中,前两个括号之间表示正常的矩阵乘法,的运算优先级最低。

Input

第一行为数据组数t(t<=10)。

接下来。对每组数据:

第一行为4个整数m,n,p,q,1<=m,n,p,q<=50,分别代表矩阵A、B的行、列数。接下来为依照行列的2个矩阵A,B。矩阵元素为大小不超过100的非负整数。

Output

依照行列顺序输出结果矩阵。行内元素之间由空格隔开,行末无空格。

Sample Input

21 1 1 1111 2 2 21 01 20 1

Sample Output

416 106 4

分析:昨天比赛的时候写了一下,超时了。

今天又看了一下,发现

(AB)((AT).+1(BT).+1) = [ A * (  (AT).+1) ]    B * (  (BT).+1)]。

这样经过转化就好写了。

#include
#define N 55#define M 2550typedef long long LL;LL a[N][N], b[N][N], A[N][N], B[N][N];LL ans[M][M];int main(){ int t, m, n, p, q, i, j; scanf("%d",&t); while(t--) { scanf("%d%d%d%d",&m,&n,&p,&q); for(i = 0; i < m; i++) for(j = 0; j < n; j++) scanf("%lld", &a[i][j]); for(i = 0; i < p; i++) for(j = 0; j < q; j++) scanf("%lld", &b[i][j]); for(i = 0; i < m; i++) for(j = 0; j < m; j++) { A[i][j] = 0; for(int x = 0; x < n; x++) A[i][j] += a[i][x] * (a[j][x] + 1); } for(i = 0; i < p; i++) for(j = 0; j < p; j++) { B[i][j] = 0; for(int x = 0; x < q; x++) B[i][j] += b[i][x] * (b[j][x]+1); } for(i = 0; i < m*p; i++) for(j = 0; j < m*p; j++) { int x = i / p; int y = j / p; int yy = j % p; int xx = i % p; ans[i][j] = A[x][y] * B[xx][yy]; } for(i = 0; i < m * p; i++) { for(j = 0; j < m*p - 1; j++) printf("%lld ",ans[i][j]); printf("%lld\n",ans[i][j]); } } return 0;}

转载地址:http://yksvl.baihongyu.com/

你可能感兴趣的文章
服务企业“新两化” 用友迈进3.0时代
查看>>
《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一2.3.7 建立一个2-1多路选择器...
查看>>
一个全新的无人机需用到哪些功能的传感器技术?
查看>>
Eclipse更改皮肤,很适合开发,养眼
查看>>
复杂网络分析之数据准备篇
查看>>
CSC与HPE企业服务合并后新名称公布:DXC Technology
查看>>
高科技产业如何绿化数据中心
查看>>
数据中心运维管理经验39条
查看>>
春节期间,怎样晒朋友圈才安全?
查看>>
Python数据结构之旋转链表
查看>>
四年磨砺 亮剑中国SDN
查看>>
SD-WAN行业发展需要VNF演进
查看>>
如何在运维场景中构建一个优秀精准的异常检查系统
查看>>
开发漫谈:我爱编程语言的四大原因
查看>>
持续火热的全闪存存储,给企业带来了些什么
查看>>
中国“大数据产业”虚火旺 投入巨大水平低下
查看>>
微软协作 AI 挑战赛开始报名,沉迷 Minecraft 无法自拔的你不去试试?
查看>>
《Oracle达人修炼秘籍:Oracle 11g数据库管理与开发指南 》一1.1 数据库基本概念...
查看>>
杭州举办车联网大会,定调产业未来
查看>>
TensorFlow教程之API DOC 6.1.15 Struct tensorflow::TensorShapeDim
查看>>