QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#705358 | #5. 在线 O(1) 逆元 | lvliang | 0 | 0ms | 0kb | C++14 | 716b | 2024-11-02 23:06:38 | 2024-11-02 23:06:39 |
Judging History
answer
// inv.cpp
#include "inv.h"
#include <vector>
#include <iostream>
// 由于 p 是固定的,我们可以直接在这里初始化
const int MOD = 998244353;
// 预先计算的逆元表,用于优化计算
std::vector<int> invTable(MOD);
void init(int p) {
// 由于题目保证 p=998244353,我们可以在这里直接使用这个值
// 如果 p 不是固定的,可以在这里计算每个数的逆元并存储
invTable[1] = 1;
for (int i = 2; i < MOD; ++i) {
// 计算 i 的逆元,即 i^(MOD-2) % MOD
invTable[i] = invTable[MOD % i] * (MOD - MOD / i) % MOD;
}
}
int inv(int x) {
// 直接返回预先计算的逆元
return invTable[x];
}
詳細信息
Pretests
Final Tests
Test #1:
score: 0
Memory Limit Exceeded
Test #2:
score: 0
Memory Limit Exceeded
Test #3:
score: 0
Memory Limit Exceeded