蓝桥杯之算法训练

1.矩阵乘法

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

输入格式

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

输出格式

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

答案:

#include <stdio.h>

int main(int argc, const char * argv[]) {

//输入m,s,n,确定矩形的规模

int m,s,n;

scanf("%d%d%d",&m,&s,&n);

//输入数据,确定两个矩阵

int i,j;

int first[m][s];

int second[s][n];

for (i = 0; i < m; i ++) {

for (j = 0; j < s ; ++j) {

scanf("%d",&first[i][j]);

}

}

for (i = 0; i < s; ++ i) {

for (j = 0; j < n; ++ j) {

scanf("%d",&second[i][j]);

}

}

//两个矩阵相乘

int third[m][n];

int z;

int total=0;

for (i = 0; i < m; ++i) {

for (j = 0; j < n; ++j) {

for (total= z = 0; z < s; ++z) {

total += first[i][z]*second[z][j];

}

third[i][j] = total;

}

}

//将矩阵相乘的结果打印出来

for (i = 0; i < m; ++i) {

for (j = 0; j < n; ++j) {

printf("%d ",third[i][j]);

}

printf("\n");

}

return 0;

}


2.

时间: 2024-10-11 08:39:24

蓝桥杯之算法训练的相关文章

蓝桥杯试题 算法训练 安慰奶牛

算法训练 安慰奶牛 时间限制:1.0s   内存限制:256.0MB 问题描述 Farmer John变得非常懒,他不想再继续维护供奶牛之间供通行的道路.道路被用来连接N个牧场,牧场被连续地编号为1到N.每一个牧场都是一个奶牛的家.FJ计划除去P条道路中尽可能多的道路,但是还要保持牧场之间 的连通性.你首先要决定那些道路是需要保留的N-1条道路.第j条双向道路连接了牧场Sj和Ej(1 <= Sj <= N; 1 <= Ej <= N; Sj != Ej),而且走完它需要Lj的时间.

蓝桥杯:算法训练之最大最小公倍数

算法训练 最大最小公倍数 时间限制:1.0s   内存限制:256.0MB 问题描述 已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少. 输入格式 输入一个正整数N. 输出格式 输出一个整数,表示你找到的最小公倍数. 样例输入 9 样例输出 504 数据规模与约定 1 <= N <= 106. 注:贪心,从最大的三个数开始考虑,如果最大的数为奇数,那么相邻的三个数中有两个奇数,最大公约数为1,最小公倍数就为n(n-1)(n-2). 如果为偶数,那么往后移,考虑n(n-

蓝桥杯_算法训练_字串统计

其实题目已经给的很清楚了,枚举所有的情况,统计出现次数,找到符合条件的结果. 那么我们就根据这个提示完成即可: 第一步:枚举所有可能的字串: 1 #include<iostream> 2 #include<string.h> 3 using namespace std; 4 int main() 5 { 6 int n; 7 char s[61]; //存放原来的字符串 8 char a[61][61]; //存放所有可能的字串 9 int i=0,j=0,r=0; 10 11 c

蓝桥杯_算法训练_关联矩阵

这个题目首先我们要知道关联矩阵是什么: 这个是网上找到的关联矩阵的定义,个人感觉还是比较清楚的. 好,那接下来就是根据所给的数据进行矩阵的输出. 题目中给的是有向图,定义中的是无向图.二者的区别大家应该可以想的到,有向图有起始坐标和终止坐标,二者顺序不可颠倒,这一点在题目中也有说明.其次就是,从起点指出去的箭头,矩阵中反映为1,被指向的点,在矩阵中反映为-1.理解了这个我们就好操作了: 1 #include<iostream> 2 using namespace std; 3 int main

蓝桥杯java 算法训练 未名湖边的烦恼

问题描述 每年冬天,北大未名湖上都是滑冰的好地方.北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩. 每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个.现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面.(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法) 输入格式 两个整数,表示m和n 输出格式 一个整数,表示队伍的排法的方案数. 样例输入 3 2 样例输出 5 数据规模和约定 m,n∈[0,18] 采用递归 i

ALGO-145_蓝桥杯_算法训练_4-1打印下述图形

记: 这里用到了printf("%*s%s%*s\n",n-i,"",arr,n-i,"");的写法, 其中%*s中的*代表该字符串s的个数,s为给字符串, 这写法一般用在打印中 AC代码: 1 #include <stdio.h> 2 #define MAX 50 3 4 int main(void) 5 { 6 int i,n; 7 char arr[MAX+1]; 8 scanf("%d",&n);

ALGO-139_蓝桥杯_算法训练_s01串(递归)

问题描述 s01串初始为"0" 按以下方式变换 0变1,1变01 输入格式 1个整数(0~19) 输出格式 n次变换后s01串 样例输入 3 样例输出 101 数据规模和约定 0~19 记: 题目给出的信息带有误导性,让人看不出规律(1应该是"1"才对) 具体的要求是通过看测试数据的结果得到的(lll¬ω¬) 即:n的字符串 = (n-1的字符串) + (n-2的字符串) AC代码: 1 #include <stdio.h> 2 #define MAX

蓝桥杯——真题训练之蚂蚁感冒

标题:蚂蚁感冒 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒. 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行. 这些蚂蚁中,有1只蚂蚁感冒了.并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁. 请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒. [数据格式] 第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数. 接着的一行是n个用空格分开的整数 Xi (-100 < Xi < 100),

蓝桥杯——真题训练之李白打酒

标题:李白打酒 话说大诗人李白,一生好饮.幸好他从不开车. 一天,他提着酒壶,从家里出来,酒壶中有酒2斗.他边走边唱: 无事街上走,提壶去打酒. 逢店加一倍,遇花喝一斗. 这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了. 请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b.则:babaabbabbabbbb 就是合理的次序.像这样的答案一共有多少呢?请你计算出所有可能方案? public class Main{ public static void m