zoukankan      html  css  js  c++  java
  • 蓝桥杯训练 算法提高 矩阵相乘 (模拟,语法基础)

    问题描述

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

      现在给你一个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;
    }
  • 相关阅读:
    Ogre的骨骼动画
    ID卡读取方法(用于区分ID卡读取出来的数据和一般人手录入的数据)
    FastSpring学习笔记一
    数学 方程的解
    单调栈+桶+分治 奇袭
    神奇DP [HNOI2004] 打砖块
    DFS 找硬币
    树DP 树上染色
    android 适配器Adpter的使用总结 之 BaseExpandableListAdapter
    Java删除文件夹以及文件夹下的子目录与文件
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451132.html
Copyright © 2011-2022 走看看