QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#208970 | #5. 在线 O(1) 逆元 | Williamxzh | 60 | 5385ms | 3808kb | C++14 | 418b | 2023-10-09 22:42:04 | 2024-11-05 21:53:00 |
Judging History
answer
#include "inv.h"
#include <bits/stdc++.h>
using namespace std;
const int mod=998244353;
const __uint128_t brt=((__uint128_t)1<<64)/mod;
void init(int p){
}
int inv(int x){
int b=mod-2;long long ans=1ll,a=1ll*x;
while(b){
if(b&1){ans*=a,ans-=mod*(brt*ans>>64);while(ans>=mod) ans-=mod;}
a*=a,a-=mod*(brt*a>>64);while(a>=mod) a-=mod;
b>>=1;
}
return int(ans);
}
详细
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 11ms
memory: 3692kb
Test #2:
score: 20
Accepted
time: 1079ms
memory: 3808kb
Test #3:
score: 30
Accepted
time: 5385ms
memory: 3740kb
Test #4:
score: 0
Time Limit Exceeded
Test #5:
score: 0
Time Limit Exceeded