QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#734322 | #5. 在线 O(1) 逆元 | zyzzyh | 60 | 5087ms | 3960kb | C++20 | 1.4kb | 2024-11-11 08:54:45 | 2024-11-11 08:54:46 |
Judging History
answer
#include<bits/stdc++.h>
#include"inv.h"
using namespace std;
const int N = 1e6+100;
typedef long long ll;
const ll mod = 998244353;
ll a,b;
struct Barrett{
long long m,p;
void init(int pp){m=((__int128)1<<64)/pp;p=pp;}
long long operator ()(long long x){
return x-((__int128(x)*m)>>64)*p;
}
}Ba;
void init(int p)
{
Ba.init(p);
}
int inv(int x)
{
ll res=1;
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
res=Ba(res*x);
x=Ba((ll)x*x);
return res%mod;
}
詳細信息
Pretests
Final Tests
Test #1:
score: 10
Accepted
time: 11ms
memory: 3948kb
Test #2:
score: 20
Accepted
time: 1020ms
memory: 3740kb
Test #3:
score: 30
Accepted
time: 5087ms
memory: 3960kb
Test #4:
score: 0
Time Limit Exceeded
Test #5:
score: 0
Time Limit Exceeded