zoukankan      html  css  js  c++  java
  • 蓝桥杯基础 算法训练 矩阵乘法 (模板题)

    问题描述

      输入两个矩阵,分别是m*s,s*n大小。输出两个矩阵相乘的结果。

    输入格式

      第一行,空格隔开的三个正整数m,s,n(均不超过200)。
      接下来m行,每行s个空格隔开的整数,表示矩阵A(i,j)。
      接下来s行,每行n个空格隔开的整数,表示矩阵B(i,j)。

    输出格式

      m行,每行n个空格隔开的整数,输出相乘後的矩阵C(i,j)的值。

    样例输入

    2 3 2
    1 0 -1
    1 1 -3
    0 3
    1 2
    3 1

    样例输出

    -3 2
    -8 2

    提示
    矩阵C应该是m行n列,其中C(i,j)等于矩阵A第i行行向量与矩阵B第j列列向量的内积。
    例如样例中C(1,1)=(1,0,-1)*(0,1,3) = 1 * 0 +0*1+(-1)*3=-3

    #include<iostream>
    #include<algorithm>
    #include<cstring>
    #include<string>
    #include<map>
    #include<set>
    #include<queue>
    #include<stack>
    #include<cmath>
    #include<cstdio>
    using namespace std;
    
    int a[205][205]={0},b[205][205]={0},c[205][205]={0};
    
    int main()
    {
    	int n,m,j,k,i,T,s;
    	cin>>m>>s>>n;
    	for (i=0;i<m;i++)
    	for (j=0;j<s;j++)
    	cin>>a[i][j];
    	
    	for (i=0;i<s;i++)
    	for (j=0;j<n;j++)
    	cin>>b[i][j];
    	
    	for (i=0;i<m;i++)
    	{
    		for (j=0;j<n;j++)
    		{
    			int sum=0;
    			for (k=0;k<s;k++)
    			{
    				sum += a[i][k]*b[k][j];
    			}
    			c[i][j]+=sum;
    		}
    	}
    	for (i=0;i<m;i++)
    	{
    		for (j=0;j<n;j++)
    		{
    			cout<<c[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    	return 0;
     } 
    
    
    
    
    
  • 相关阅读:
    使用httperrequest,模拟发送及接收Json请求
    VI/VIM 常用命令
    Robot Framework开发系统关键字详细
    Python logging模块使用记录
    反编译app方法
    python+appium使用记录
    查看apk包及Activity名方法
    Robot Framework使用技巧
    git 常用使用及问题记录
    多个git账户生成多份rsa秘钥实现多个账户同时使用配置
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451147.html
Copyright © 2011-2022 走看看