QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#136491#5. 在线 O(1) 逆元zhouhuanyi100 ✓4642ms42936kbC++14462b2023-08-08 20:59:242024-11-05 21:51:14

Judging History

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

  • [2024-11-05 21:51:14]
  • 管理员手动重测本题所有提交记录
  • 测评结果:100
  • 用时:4642ms
  • 内存:42936kb
  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-08-08 20:59:27]
  • 评测
  • 测评结果:100
  • 用时:5915ms
  • 内存:42768kb
  • [2023-08-08 20:59:24]
  • 提交

answer

#include<iostream>
#include<cstdio>
#define mod 998244353
#define N 10000000
using namespace std;
int MD2(int x)
{
	return x<0?x+mod:x;
}
int T,invs[N+1];
void init(int p)
{
	invs[1]=1;
	for (int i=2;i<=N;++i) invs[i]=MD2(-1ll*(mod/i)*invs[mod%i]%mod);
	return;
}
int inv(int x)
{
	int a,b;
	if (x<=N) return invs[x];
	else
	{
		a=mod/x,b=mod%x;
		if ((b<<1)<=x) return 1ll*MD2(-a)*inv(b)%mod;
		else return 1ll*(a+1)*inv(x-b)%mod;
	}
}

详细


Pretests


Final Tests

Test #1:

score: 10
Accepted
time: 59ms
memory: 42816kb

Test #2:

score: 20
Accepted
time: 490ms
memory: 42892kb

Test #3:

score: 30
Accepted
time: 2399ms
memory: 42936kb

Test #4:

score: 20
Accepted
time: 3723ms
memory: 42936kb

Test #5:

score: 20
Accepted
time: 4642ms
memory: 42932kb