A. 矩阵乘法
矩阵乘法
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
Description
矩阵乘法是一种常用的运算,但它的优化是一个复杂的问题,在保证计算结果正确的情况下,请你尽可能地优化它的执行速度。
本题的得分将由如下公式计算:
$$score = p^{1.1} \times q^{1.1} \times r^{1.1} / (time \times 100) $$其中, 为两个二维矩阵的大小(), 为你实现的矩阵乘法运算的运行毫秒数。
Format
你的程序 不需要也不要
进行输入输出,只需要补充如下代码中函数的内容,后直接提交即可。
#include "Matrix.h"
void MatrixMult::mult() {
// 请在此处完成你的代码
}
Notes
注意,两个矩阵的数据分别存储在 和 中,请将你的结果写入 C。
例如,访问 A 中第 i 行第 j 列的数据:
A[i][j]
同时,可以通过 p, q, r 三个变量访问矩阵的大小。
附:A, B, C 的类型为 vector<vector<int>>
给出 baseline 如下
#include "Matrix.h"
void MatrixMult::mult() {
for (int i = 0; i < p; ++i) {
for (int j = 0; j < r; ++j) {
C[i][j] = 0;
for (int k = 0; k < q; ++k) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
提供一组输入用于自测,如果出现了 0 WA
说明没有通过正确性检测
2 3 3
22 75 26
45 72 81
47 29 97
2 75 25
82 84 17
3316 8447 4451
8901 13509 7542
提示:对于 小规模 的矩阵使用复杂的策略,可能会起到反效果。
【挑战1】 Matlab 从入门到精通
- Status
- Done
- Rule
- IOI
- Problem
- 1
- Start at
- 2024-9-28 15:00
- End at
- 2024-12-20 23:00
- Duration
- 2000 hour(s)
- Host
- Partic.
- 25