错误集

数学 组合数 RE WA P2480 [SDOI2010] 古代猪文

inline int C(int n, int m, int i) {
    return fact[n][i] * Pow(fact[m][i] * fact[n - m][i] % p[i], p[i] - 2, i) % p[i];
}
inline int Lucas(int n, int m, int i) {
    return m ? Lucas(n / p[i], m / p[i], i) * C(n % p[i], m % p[i], i) % p[i] : 1;
}

\(\Large{to}\)

inline int C(int n, int m, int i) {
    if (n < m) return 0;
    return fact[n][i] * Pow(fact[m][i] * fact[n - m][i] % p[i], p[i] - 2, i) % p[i];
}
inline int Lucas(int n, int m, int i) {
    if (n < m) return 0;
    return m ? Lucas(n / p[i], m / p[i], i) * C(n % p[i], m % p[i], i) % p[i] : 1;
}

具体表现:if (n < m) return 0; 没判断使得 \(n\)\(m\) 可能小于 \(0\) 造成 RE(访问其他的内存并篡改)从而引起 WA


读题 P2502 [HAOI2006] 旅行

对于 \(100\%\) 的数据,\(1 \le x,y \le n \le 500\)\(1 \le v < 3 \times 10^4\)\(1 \le m \le 5 \times 10^6\)\(x \ne y\)

\(\Large{to}\)

对于 \(100\%\) 的数据,\(1 \le x,y \le n \le 500\)\(1 \le v < 3 \times 10^4\)\(1 \le m \le 5 \times 10^3\)\(x \ne y\)

具体表现:想到 \(\Theta(m^2\alpha(n))\) 的做法,但 \(m\) 看成 \(5 \times 10^6\) 就没敢写。


数学 组合数 RE WA [NOIP2025] 清仓甩卖 / sale(官方数据)

int C(int n, int m) {
    if (n < m) return 0;
    return fact[n] * inv[m] % mod * inv[n - m] % mod;
}

\(\Large{to}\)

int C(int n, int m) {
    if (n < m || m < 0) return 0;
    return fact[n] * inv[m] % mod * inv[n - m] % mod;
}

具体表现:if (n < m || m < 0) return 0; 没判断使得 \(m\) 可能小于 \(0\) 造成 RE(访问其他的内存并篡改)从而引起 WA


posted @ 2025-11-29 10:20  _Charllote  阅读(6)  评论(0)    收藏  举报