QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#208970#5. 在线 O(1) 逆元Williamxzh70 1114ms3816kbC++14418b2023-10-09 22:42:042023-10-09 22:42:06

Judging History

你现在查看的是测评时间为 2023-10-09 22:42:06 的历史记录

  • [2024-11-05 21:53:00]
  • 管理员手动重测本题所有提交记录
  • 测评结果:60
  • 用时:5385ms
  • 内存:3808kb
  • [2023-10-09 22:42:06]
  • 评测
  • 测评结果:70
  • 用时:1114ms
  • 内存:3816kb
  • [2023-10-09 22:42:04]
  • 提交

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);
}

Details

Test #1:

score: 30
Accepted
time: 12ms
memory: 3672kb

Test #2:

score: 40
Accepted
time: 1114ms
memory: 3816kb

Test #3:

score: 0
Time Limit Exceeded