QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#734322#5. 在线 O(1) 逆元zyzzyh60 5087ms3960kbC++201.4kb2024-11-11 08:54:452024-11-11 08:54:46

Judging History

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

  • [2024-11-11 08:54:46]
  • 评测
  • 测评结果:60
  • 用时:5087ms
  • 内存:3960kb
  • [2024-11-11 08:54:45]
  • 提交

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