首页 > 其他分享 >2017天梯赛总决赛:L1-8 矩阵A乘以B

2017天梯赛总决赛:L1-8 矩阵A乘以B

时间:2024-03-30 15:29:51浏览次数:40  
标签:Rb int Ca 列数 矩阵 110 天梯 L1 2017

题目描述

给定两个矩阵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的行数。

矩阵乘法

设A为m*n的矩阵,B为x*y的矩阵,则m*y的矩阵C为矩阵A与矩阵B乘积,记做C=AB

注意

1、当矩阵A的列数等于矩阵B的行数时,A与B可以相乘。

2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。

3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

解:

知道了相关知识这道题就十分简单了

主代码:

for(int i=1;i<=m;i++)
       {

                for(int j=1;j<=y;j++)
           {
                     for(int k=1;k<=y;k++)
                {
                          c[i][j]+=a[i][k]*b[k][j];
                }
            }
        }

AC代码:

#include<iostream>
using namespace std;
int main()
{
    int a[110][110];
    int b[110][110];
    int c[110][110]={0};
    int m,n;
    cin>>m>>n;
    for(int i=1;i<=m;i++)
    {
        for(int j=1;j<=n;j++)
        {
            cin>>a[i][j];
        }
    }
    int x,y;
    cin>>x>>y;
    for(int i=1;i<=x;i++)
    {
        for(int j=1;j<=y;j++)
        {
            cin>>b[i][j];
        }
    }
    if(n!=x)
    {
        cout<<"Error: "<<n<<" != "<<x<< endl;
    }
    else
    {
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=y;j++)
            {
                for(int k=1;k<=y;k++)
                {
                    c[i][j]+=a[i][k]*b[k][j];
                }
            }
        }
        cout<<m<<" "<<y<<endl;
        for(int i=1;i<=m;i++)
        {
            for(int j=1;j<=y;j++)
            {
                cout<<c[i][j];
                if(j==y)
                {
                    cout<<endl;
                }
                else
                {
                    cout<<" ";
                }
            }
        }
    }
    return 0;
}

标签:Rb,int,Ca,列数,矩阵,110,天梯,L1,2017
From: https://blog.csdn.net/2301_81731156/article/details/137167243

相关文章

  • L1-080 乘法口诀数列
    注:考虑两个数字乘积是0的情况。#include<bits/stdc++.h>usingnamespacestd;intres[10000];intmain(){ inta,b,c; cin>>a>>b>>c; res[0]=a; res[1]=b; intpos=2; for(inti=0;;i++){ intans=res[i]*res[i+1]; vec......
  • L2-046 天梯赛的赛场安排 团体程序设计天梯赛-练习集 c++ 易懂 模拟
    天梯赛使用OMS监考系统,需要将参赛队员安排到系统中的虚拟赛场里,并为每个赛场分配一位监考老师。每位监考老师需要联系自己赛场内队员对应的教练们,以便发放比赛账号。为了尽可能减少教练和监考的沟通负担,我们要求赛场的安排满足以下条件:每位监考老师负责的赛场里,队员人数不得......
  • NOI2017 蔬菜
    传送门NOI的题果然是非常的难且有意思。还有就是推荐一下command_block的题解。这题的题意比较难。题意:有\(n\)种菜,初始每种菜有\(c_i\)个,单价\(a_i\),如果不出售每天会变质\(x_i\)棵。第一次卖这种菜会获得\(s_i\)的奖励。每天至多卖\(m\)个菜。给出\(q\)次询......
  • L1-069 胎压监测
    easy.#include<bits/stdc++.h>usingnamespacestd;set<pair<int,int>>st;intmaxv=0;intmain(){ for(inti=1;i<=4;i++){ intt; cin>>t; st.insert({t,i}); maxv=max(maxv,t); } intcmp,subv; cin>>cm......
  • VKL144A/B TSSOP48/QFP48L-点阵式液晶驱动芯片/低电流LCD驱动,36×4段技术支持
    产品品牌:永嘉微电/VINKA产品型号:VKL144A/B封装形式:TSSOP48/QFN48L概述:VKL144A/BTSSOP48/QFN48L是一个点阵式存储映射的LCD驱动器,可支持最大144点(36SEGx4COM)的LCD屏。单片机可通过I2C接口配置显示参数和读写显示数据,可配置4种功耗模式,也可通过关显示和关振荡器进入省电模式......
  • 【洛谷 P8654】[蓝桥杯 2017 国 C] 合根植物 题解(并查集)
    [蓝桥杯2017国C]合根植物题目描述w星球的一个种植园,被分成m×nm\timesnm×n个小格子(东西方向......
  • 转载:使用 Linux tracepoint、perf 和 eBPF 跟踪数据包 (2017)
    http://arthurchiao.art/blog/trace-packet-with-tracepoint-perf-ebpf-zh/Linux允许在主机上用虚拟网卡(virtualinterface)和网络命名空间(networknamespace)构建复杂的网络。但出现故障时,排障(troubleshooting)相当痛苦。如果是3层路由问题,mtr 可以排上用场;但如果是更底层的问......
  • L2-046 天梯赛的赛场安排
    和这道题真的有壁,拿起来就做,然后做错了。又看了半天题目,才知道大概啥意思。每一轮都需要给人数最多的学校分配位置,如果人数大于c,分配一个教室剩下的人还要再放回进行第二轮,而不是一次性给这个学校分配完。#include<bits/stdc++.h>usingnamespacestd;constintmaxn=5005......
  • “百度杯”CTF比赛 2017 二月场-爆破-2
    “百度杯”CTF比赛2017二月场爆破-2类型:misc-web题目描述:flag不在变量中。解题方法:打开靶机,得到一段php源码:代码审计:1.里面包含了flag.php文件2.获取hello的值,并用var_dump函数输出相关的变量信息我们试着传入参数:?hello=$GLOBALS这里我们发现flag的信息并没有在变......
  • “百度杯”CTF比赛 2017 二月场-爆破-1
    “百度杯”CTF比赛2017二月场爆破-1:类型:misc-web题目描述:flag就在某六位变量中解题方法:打开靶机,得到一段php代码:现在来分析这一段php源码:1.包含flag.php文件在里面2.需要传入变量hello的值3.正则表达式匹配,一个或多个[A-Za-z0-9]4.var_dump函数用于输出变量的相关信息......