• 蓝桥杯训练 算法提高 矩阵相乘 (模拟,语法基础)


    问题描述

      小明最近在为线性代数而头疼,线性代数确实很抽象(也很无聊),可惜他的老师正在讲这矩阵乘法这一段内容。
      当然,小明上课打瞌睡也没问题,但线性代数的习题可是很可怕的。
      小明希望你来帮他完成这个任务。

      现在给你一个ai行aj列的矩阵和一个bi行bj列的矩阵,
      要你求出他们相乘的积(当然也是矩阵)。
      (输入数据保证aj=bi,不需要判断)

    输入格式

      输入文件共有ai+bi+2行,并且输入的所有数为整数(long long范围内)。
      第1行:ai 和 aj
      第2~ai+2行:矩阵a的所有元素
      第ai+3行:bi 和 bj
      第ai+3~ai+bi+3行:矩阵b的所有元素

    输出格式

      输出矩阵a和矩阵b的积(矩阵c)
      (ai行bj列)

    样例输入

    2 2
    12 23
    45 56
    2 2
    78 89
    45 56

    样例输出

    1971 2356
    6030 7141

    注意数组要开到1000. 

    #include<iostream>
    #include<cstdio>
    #include<cmath>
    #include<cstring>
    using namespace std;
    
    int main()
    {
    	long long n,m,j,k,i,T,s;
    	long long a[1000][1000],b[1000][1000],c[1000][1000];
    	cin>>n>>m;
    	for (i=0;i<n;i++)
    	for (j=0;j<m;j++)
    	cin>>a[i][j];
    	
    	cin>>m>>s;
    	for (i=0;i<m;i++)
    	for (j=0;j<s;j++)
    	cin>>b[i][j];
    	
    	for (i=0;i<n;i++)
    	{
    		for (j=0;j<s;j++)
    		{
    			int sum=0;
    			for (k=0;k<m;k++)
    			{
    				sum += a[i][k]*b[k][j];
    			}
    			c[i][j] = sum;
    		}
    	}
    	for (i=0;i<n;i++)
    	{
    		for (j=0;j<s;j++)
    		{
    			cout<<c[i][j]<<" ";
    		}
    		cout<<endl;
    	}
    	
    	return 0;
    }
  • 相关阅读:
    word break II
    leetcode新题
    tensorflow数据读取过程
    python文本编辑: re.sub-------读取文本,去除指定字符并保存
    Anaconda安装及虚拟环境搭建教程(linux)
    语音合成
    关于Python错误提示: 'str' object is not callable
    语音识别学习阶段性总结(一)
    kaldi学习
    kaldi学习
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451132.html
Copyright © 2020-2023  润新知