QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#705358 | #5. 在线 O(1) 逆元 | lvliang | 0 | 0ms | 0kb | C++14 | 716b | 2024-11-02 23:06:38 | 2024-11-05 22:07:53 |
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];
}
Details
Pretests
Final Tests
Test #1:
score: 0
Memory Limit Exceeded
Test #2:
score: 0
Memory Limit Exceeded
Test #3:
score: 0
Memory Limit Exceeded
Test #4:
score: 0
Memory Limit Exceeded
Test #5:
score: 0
Memory Limit Exceeded