提交记录 14908
| 提交时间 |
评测时间 |
| 2020-11-14 02:45:00 |
2020-11-14 02:45:09 |
// fileName: test_O2_Transpose_Unroll_loops_8_type_1.cpp
#pragma GCC optimize("O2")
#include <cstdio>
#include <random>
#include <chrono>
std::mt19937 rng(std::chrono::steady_clock::now().time_since_epoch().count());
typedef unsigned int UI;
typedef unsigned long long ULL;
const UI Mod = 998244353;
const int N = 1400;
UI A[N][N], B[N][N], C[N][N];
inline void Swap(UI &x, UI &y) { UI t = x; x = y; y = t; }
void Mul() {
for (int i = 1; i < N; ++i)
for (int j = 0; j < i; ++j)
Swap(B[i][j], B[j][i]);
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
for (int k = 0; k < N; k += 8) {
C[i][j] = (C[i][j] + (ULL)A[i][k ] * B[j][k ]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 1] * B[j][k + 1]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 2] * B[j][k + 2]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 3] * B[j][k + 3]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 4] * B[j][k + 4]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 5] * B[j][k + 5]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 6] * B[j][k + 6]) % Mod;
C[i][j] = (C[i][j] + (ULL)A[i][k + 7] * B[j][k + 7]) % Mod;
}
}
#ifdef PKRBT
int main() {
#else
void matrix_multiply(int, const double *, const double *, double *) {
#endif
for (int i = 0; i < N; ++i) {
for (int j = 0; j < N; ++j) {
A[i][j] = rng() % Mod;
B[i][j] = rng() % Mod;
C[i][j] = 0;
}
}
Mul();
UI Ans = 0;
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
Ans ^= C[i][j];
printf("%u\n", Ans);
#ifdef PKRBT
return 0;
#endif
}
| Compilation | N/A | N/A | Compile OK | Score: N/A | 显示更多 |
| Testcase #1 | 7.626 s | 22 MB + 456 KB | Wrong Answer | Score: 0 | 显示更多 |
Judge Duck Online | 评测鸭在线
Server Time: 2026-03-21 17:23:40 | Loaded in 1 ms | Server Status
个人娱乐项目,仅供学习交流使用 | 捐赠