如果你WA&TLE了,有可能是因为快速幂的时候爆longlong了。
查看原帖
如果你WA&TLE了,有可能是因为快速幂的时候爆longlong了。
585332
ewe_楼主2023/5/28 21:23

60分部分代码

int qmod(int x, int mod)
{
    return x % mod + (x >= mod) * mod;
}

int qsm(int a, int b, int mod)
{
    int res = 1;
    while (b)
    {
        if (b & 1)
            res = qmod(res * a, mod);
        a = qmod(a * a, mod);
        b >>= 1;
    }
    return res;
}

AC部分代码

int qmod(__int128_t x, int mod)
{
    return x % mod + (x >= mod) * mod;
}

int qsm(int a, int b, int mod)
{
    int res = 1;
    while (b)
    {
        if (b & 1)
            res = qmod((__int128_t)res * a, mod);
        a = qmod((__int128_t)a * a, mod);
        b >>= 1;
    }
    return res;
}

2023/5/28 21:23
加载中...