为何CE? 本地没问题, 肉眼观察没问题, 但就是CE
查看原帖
为何CE? 本地没问题, 肉眼观察没问题, 但就是CE
340205
Coast23楼主2024/9/28 16:53

代码:

/*
let p = k * i + r
k * i + r ≡ 0 (mod p)
multiply both sides by inv[i] and inv[r]:
k * inv[r] + inv[i] ≡ 0 (mod p)
inv[i] = - k * inv[r] (mod p)
k = floor(p / i), r = p % i
so, inv[i] = (- floor(p / i) * inv[p % i] + p) % p
*/

#include <bits/stdc++.h>
#define int long long

int n, p;
int inv[20000529] = {0, 1};

int read(){
    int x = 0, f = 1; char ch = getchar();
    for(; !isdigit(ch); ch = getchar()) f ^= (ch == '-');
    for(; isdigit(ch); ch = getchar()) x = (x << 3) + (x << 1) + (ch xor 48);
    return f? x : -x;
}

void write(int x){
    if(x < 0) putchar('-'), x = -x;
    if(x > 9) write(x / 10);
    putchar(x % 10 xor 48);
}

signed main(){
    n = read(), p = read();
    write(inv[1]); putchar('\n');
    for(int i = 2; i <= n; ++i){
        inv[i] = (- (p / i) * inv[p % i] + (p << 2)) % p;
        write(inv[i]), putchar('\n');
    }
    return 0;
}

C++14 O2:

g++: 编译器内部错误:File size limit exceeded signal terminated program as
请提交一份完整的错误报告,
如有可能请附上经预处理后的源文件。
参阅 <https://gcc.gnu.org/bugs/> 以获取指示。

C++20 O2:

g++: 编译器内部错误:File size limit exceeded signal terminated program as
Please submit a full bug report, with preprocessed source (by using -freport-bug).
参阅 <https://gcc.gnu.org/bugs/> 以获取指示。
2024/9/28 16:53
加载中...