QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#705358#5. 在线 O(1) 逆元lvliang0 0ms0kbC++14716b2024-11-02 23:06:382024-11-05 22:07:53

Judging History

你现在查看的是最新测评结果

  • [2024-11-05 22:07:53]
  • 管理员手动重测本题所有提交记录
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-11-02 23:06:39]
  • 评测
  • 测评结果:0
  • 用时:0ms
  • 内存:0kb
  • [2024-11-02 23:06:38]
  • 提交

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