PAT L1-048 矩阵A乘以B
https://pintia.cn/problem-sets/994805046380707840/problems/994805082313310208
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB。需要注意的是,只有规模匹配的矩阵才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,则只有Ca与Rb相等时,两个矩阵才能相乘。
输入格式:
输入先后给出两个矩阵A和B。对于每个矩阵,首先在一行中给出其行数R和列数C,随后R行,每行给出C个整数,以1个空格分隔,且行首尾没有多余的空格。输入保证两个矩阵的R和C都是正数,并且所有整数的绝对值不超过100。
输出格式:
若输入的两个矩阵的规模是匹配的,则按照输入的格式输出乘积矩阵AB,否则输出Error: Ca != Rb,其中Ca是A的列数,Rb是B的行数。
输入样例1:
2 3
1 2 3
4 5 6
3 4
7 8 9 0
-1 -2 -3 -4
5 6 7 8
输出样例1:
2 4
20 22 24 16
53 58 63 28
输入样例2:
3 2
38 26
43 -5
0 17
3 2
-11 57
99 68
81 72
输出样例2:
Error: 2 != 3
时间复杂度:$O(Ca* Rb * Ra)$
代码:
#include <bits/stdc++.h>
using namespace std; int Ca, Ra, Cb, Rb;
int A[11111][11111], B[11111][11111], C[11111][11111]; int main() { scanf("%d%d", &Ca, &Ra);
for(int i = 1; i <= Ca; i ++) {
for(int j = 1; j <= Ra; j ++)
scanf("%d", &A[i][j]);
} scanf("%d%d", &Cb, &Rb);
for(int i = 1; i <= Cb; i ++) {
for(int j = 1; j <= Rb; j ++)
scanf("%d", &B[i][j]);
} if(Ra != Cb) {
printf("Error: %d != %d\n", Ra, Cb);
return 0;
} printf("%d %d\n", Ca, Rb);
for(int i = 1; i <= Ca; i ++) {
for(int j = 1; j <= Rb; j ++) {
for(int k = 1; k <= Ra; k ++)
C[i][j] += A[i][k] * B[k][j];
}
} for(int i = 1; i <= Ca; i ++) {
for(int j = 1; j <= Rb; j ++) {
printf("%d", C[i][j]);
printf("%s", j != Rb ? " " : "\n");
}
}
return 0;
}
PAT L1-048 矩阵A乘以B的更多相关文章
- 团体程序设计天梯赛-练习集-L1-048. 矩阵A乘以B
L1-048. 矩阵A乘以B 给定两个矩阵A和B,要求你计算它们的乘积矩阵AB.需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有Ra行.Ca列,B有Rb行.Cb列,则只有Ca与Rb相等时,两个矩阵 ...
- 7-8 矩阵A乘以B (15分)
7-8 矩阵A乘以B (15分) 给定两个矩阵A和B,要求你计算它们的乘积矩阵AB.需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有Ra行.Ca列,B有Rb行.Cb列, ...
- PAT 天梯赛 L1-048. 矩阵A乘以B 【数学】
题目链接 https://www.patest.cn/contests/gplt/L1-048 题意 给出两个矩阵,先判断两个矩阵能不能相乘,如果可以,就输出相乘 结果,如果不行 则按格式输出erro ...
- PAT 1050. 螺旋矩阵(25)
本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为m行n列,满足条 ...
- PAT 08-2 求矩阵的局部最大值
这题挺简单的,但,每日一篇.说两点:第一,我的粗心导致我这题花了大把的时间去找错误,看到4个测试用例对了三个,我以为是那块的边界条件没考虑到,又或者是存在隐蔽的逻辑或语法错误,通过与别人程序的反复对比 ...
- L1-8 矩阵A乘以B (15 分)
给定两个矩阵A和B,要求你计算它们的乘积矩阵AB.需要注意的是,只有规模匹配的矩阵才可以相乘.即若A有Ra行.Ca列,B有Rb行.Cb列,则只有Ca与Rb相等时,两 ...
- 天梯赛训练2 7-8 矩阵A乘以B
知道矩阵A*B的规则按照规则来做就好了 #include <bits/stdc++.h>#include <stdio.h>using namespace std;int a[ ...
- PAT 1050 螺旋矩阵(25)(代码)
1050 螺旋矩阵(25)(25 分) 本题要求将给定的N个正整数按非递增的顺序,填入"螺旋矩阵".所谓"螺旋矩阵",是指从左上角第1个格子开始,按顺时针螺旋方 ...
- PAT B1050 螺旋矩阵 (25 分)
本题要求将给定的 N 个正整数按非递增的顺序,填入“螺旋矩阵”.所谓“螺旋矩阵”,是指从左上角第 1 个格子开始,按顺时针螺旋方向填充.要求矩阵的规模为 m 行 n 列,满足条件:m×n 等于 N:m ...
随机推荐
- Blender2.79建模快捷键
快捷键 基本操作 滚动鼠标中键滚轮:视图放大或缩小 按住鼠标中键滚轮:视图旋转 单独鼠标右键:选择物体 单独鼠标右键:放置物体 shift+鼠标中键:视图平移 小键盘数字1:前视图:ctrl+1:后视 ...
- Qt——styleSheet
1.两个地方调用 QWidget::setStyleSheet() QApplication::setStyleSheet() 2.基本语法 selector {attribute : value} ...
- C指针(2)——指针在函数中的应用(程序讲解)
3-1.c指针用作函数参数 #include<stdio.h> typedef unsigned char uint8_t; //类型自定义,通过typedef语句重新把unsigned ...
- win10 禁用自动更新
管理员身份运行CMD,输入REG add "HKLM\SYSTEM\CurrentControlSet\Services\UsoSvc" /v "Start" ...
- 22-Consent 确认逻辑实现
1-定义一个从前台传到后台的viewModel namespace MvcCookieAuthSample.Models { public class InputConsentViewModel { ...
- vue组件化编程
vue文件包含3个部分 <template> <div></div> </template> <script> export default ...
- 如何使用GeoServer发布地图
本文所采用的系统为Windows 10 64bit操作系统,使用FireFox浏览器 一.安装配置Java的SDK 1. 安装JavaDevelopment Kit (JDK) 8,java开发环境, ...
- 成都Uber优步司机奖励政策(3月20日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- jquery实现倒计时功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- CakePHP模型中使用join的多种写法
Cake写法 App::import("Model","Client"); $this->Client = & new Client(); $th ...