一句话理解
枚举答案:把可能的答案当循环变量去验证。
为什么要学
答案范围小、检验快时非常好用。也是二分答案的前身。
讲解
例如答案只能是 1 到 n,逐个检查哪个合法且最优。
检验若是 O(n),总复杂度 n²,要核对范围。
例子
for (int ans = 1; ans <= n; ans++)
if (check(ans)) { cout << ans; break; }
从小到大第一个成功的就是最小可行答案。
常见错误
- 答案范围是 1e18 还逐个枚举。应二分。
- check 写错导致所有 ans 都过。