错误集
填写模板
`错误涉及知识分类` `错误返回的测评结果` [编号 名称](https://www.luogu.com.cn/problem/编号)
```cpp
```错误代码节选
$\Large{to}$
```cpp
```正确代码节选
具体表现:……
正文
数学 组合数 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。
对于 \(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。
区间 线段树 WA P12087 [RMI 2019] 好数 / Lucky Numbers
inline void solve() {
ans = key * t.query(1, 1, n, 1, n);
cout << ans.a[0][2] << '\n';
for (int i = 1; i <= m; ++i) {
cin >> op >> x >> y;
if (op == 1)
ans = key * t.query(1, 1, n, n - x + 1, n - y + 1),
cout << ans.a[0][2] << '\n';
else
t.update(1, 1, n, n - x + 1, y);
}
}
\(\Large{to}\)
inline void solve() {
ans = key * t.query(1, 1, n, 1, n);
cout << ans.a[0][2] << '\n';
for (int i = 1; i <= m; ++i) {
cin >> op >> x >> y;
if (op == 1)
ans = key * t.query(1, 1, n, n - y + 1, n - x + 1),
cout << ans.a[0][2] << '\n';
else
t.update(1, 1, n, n - x + 1, y);
}
}
具体表现:区间翻转后没有左右互换导致左边大于右边,线段树在最浅层返回,使答案明显偏小,导致 WA。

浙公网安备 33010602011771号