关于 D 的溢出
  • 板块学术版
  • 楼主rainygame
  • 当前回复1
  • 已保存回复2
  • 发布时间2024/6/8 21:43
  • 上次更新2024/6/8 22:05:11
查看原帖
关于 D 的溢出
804607
rainygame楼主2024/6/8 21:43
#include <bits/stdc++.h>
using namespace std;
#define int __int128
const int MOD(998244353);

int qpow(int x, int k=MOD-2){
    int res(1);
    x %= MOD;
    for (; k; k>>=1){
        if (k & 1) (res *= x) %= MOD;
        (x *= x) %= MOD;
    }
    return res;
}

long long n, k;

signed main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    cin >> n;
    for (int i(n); i; i/=10) ++k;
    int res((qpow(10, (n%(MOD-1))*k)-1+MOD)%MOD), res2(qpow((qpow(10, k)-1+MOD)%MOD));
    cout << (long long)(n*(res*res2%MOD)%MOD);
    return 0;
}

如果把上面的 #define int __int128 改成 #define int long long,就会 WA。为什么?

2024/6/8 21:43
加载中...