QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#282422#5. 在线 O(1) 逆元uzu_2360 5527ms3880kbC++14600b2023-12-11 23:39:272024-11-05 21:56:06

Judging History

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

  • [2024-11-05 21:56:06]
  • 管理员手动重测本题所有提交记录
  • 测评结果:60
  • 用时:5527ms
  • 内存:3880kb
  • [2023-12-11 23:39:27]
  • 评测
  • 测评结果:70
  • 用时:1159ms
  • 内存:3556kb
  • [2023-12-11 23:39:27]
  • 提交

answer

// inv.cpp
// inv.h
#define once

void init(int p);
int inv(int x);

#include "inv.h"

namespace {
    int mod;
}

void init(int p) {
    mod = p;
}

// 扩展欧几里得算法求逆元
int extGCD(int a, int b, int &x, int &y) {
    if (b == 0) {
        x = 1;
        y = 0;
        return a;
    }
    int gcd = extGCD(b, a % b, x, y);
    int temp = x;
    x = y;
    y = temp - (a / b) * y;
    return gcd;
}

int inv(int x) {
    int invX, y;
    extGCD(x, mod, invX, y);
    invX = (invX % mod + mod) % mod;  // 确保逆元为正数
    return invX;
}


详细


Pretests


Final Tests

Test #1:

score: 10
Accepted
time: 12ms
memory: 3880kb

Test #2:

score: 20
Accepted
time: 1108ms
memory: 3692kb

Test #3:

score: 30
Accepted
time: 5527ms
memory: 3760kb

Test #4:

score: 0
Time Limit Exceeded

Test #5:

score: 0
Time Limit Exceeded