提交记录 17440


用户 题目 状态 得分 用时 内存 语言 代码长度
fstqwq mmmd1k. 测测你的双精度矩阵乘法-1k Accepted 100 586.433 ms 16416 KB C++ 871 B
提交时间 评测时间
2022-02-21 19:46:51 2022-02-21 19:46:56
#include <bits/stdc++.h>

#define idx(i, j) ((i) * n + (j))

double BB[1024 * 1024];
void matrix_multiply(int n, const double *A, const double *B, double *C) {
	memcpy(BB, B, sizeof(double) << 20);
	for (int i = 0; i < n; i++) for (int j = i + 1; j < n; j++) {
		std::swap(BB[idx(i, j)], BB[idx(j, i)]);
	}
	for (int i = 0; i < n; i++) {
		for (int j = 0; j < n; j++) {
			double sum0 = 0, sum1 = 0, sum2 = 0, sum3 = 0, sum4 = 0, sum5 = 0, sum6 = 0, sum7 = 0;
			for (int k = 0; k < n; k += 4) {
#define mk(x) sum##x += A[idx(i, k + x)] * BB[idx(j, k + x)]
mk(0); 
mk(1); 
mk(2); 
mk(3); 
/*				sum0 += A[idx(i, k)] * BB[idx(j, k)];
				sum1 += A[idx(i, k + 1)] * BB[idx(j, k + 1)];
				sum2 += A[idx(i, k + 2)] * BB[idx(j, k + 2)];
				sum3 += A[idx(i, k + 3)] * BB[idx(j, k + 3)];*/
			}
			C[idx(i, j)] = sum0 + sum1 + sum2 + sum3 + sum4 + sum5 + sum6 + sum7;
		}
	}
}

CompilationN/AN/ACompile OKScore: N/A

Testcase #1586.433 ms16 MB + 32 KBAcceptedScore: 100


Judge Duck Online | 评测鸭在线
Server Time: 2026-03-17 13:45:07 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠