QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#241468#5. 在线 O(1) 逆元mfeitveer100 ✓5831ms395536kbC++14421b2023-11-06 08:14:002023-11-06 08:14:01

Judging History

你现在查看的是测评时间为 2023-11-06 08:14:01 的历史记录

  • [2024-11-05 21:55:04]
  • 管理员手动重测本题所有提交记录
  • 测评结果:100
  • 用时:5977ms
  • 内存:396372kb
  • [2023-11-06 08:14:01]
  • 评测
  • 测评结果:100
  • 用时:5831ms
  • 内存:395536kb
  • [2023-11-06 08:14:00]
  • 提交

answer

#include "inv.h"

const int N = 130000010;
const int mod = 998244353;

typedef long long ll;

int Inv[N];

ll ask(ll x) {
	ll res = 1;
	while(x > 100000000)
		res = res * (mod - mod / x) % mod, x = mod % x;
	return res * Inv[x] % mod;
}

void init(int p) {
	Inv[1] = 1;
	for(int i = 2;i <= 100000000;i++)
		Inv[i] = 1ll * (mod - mod / i) * Inv[mod % i] % mod;
}

int inv(int x) {
	return ask(x);
}

Details

Test #1:

score: 30
Accepted
time: 711ms
memory: 394644kb

Test #2:

score: 40
Accepted
time: 1247ms
memory: 395376kb

Test #3:

score: 30
Accepted
time: 5831ms
memory: 395536kb