@root

lyhldy CSP-J2二等 2024-05-08 19:30:46 9

@root 继上次我TLE后,我勤学苦练114天,成功地由TLE变成了WA…

#include <cstdio>
long long f[100005];
long long fbnc(long long t) {
    f[1] = 1;
    f[2] = 1;
    for (int i = 3; i <= t; i++) {
        f[i] = f[i - 1] + f[i - 2];
    }
    return f[t];
}
int main() {
    long long n, p;
    scanf("%lld\n%lld", &n, &p);
    printf("%lld\n", fbnc(n) % p);
    return 0;
}

帮我康康哪里错了qwq

{{ vote && vote.total.up }}

共 2 条回复

root 站长

每次计算 f[i] 都要求余数,避免中间结果过大超出 long long int 的范围。

root 站长

f[i] = f[i - 1] + f[i - 2]; 改成 f[i] = (f[i - 1] + f[i - 2]) % p;