08-基础算法/02-简单枚举:修订间差异
跳转到导航
跳转到搜索
小 导入1个版本 |
批量导入三三文档 |
||
| 第41行: | 第41行: | ||
[[Category:基础算法]] | [[Category:基础算法]] | ||
[[Category:三三文档]] | [[Category:三三文档]] | ||
2026年5月20日 (三) 18:23的最新版本
简单枚举
枚举(枚举法/穷举法)是最直观的算法思想:列出所有可能的情况,逐一检查是否符合要求。
基本模板
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
for (int k = 1; k <= n; k++)
if (check(i, j, k))
ans++;
优化方向
- 减少枚举范围:通过数学分析减少不必要的枚举
- 剪枝:在枚举过程中提前排除不可能的方案
- 改变枚举顺序:先枚举约束多的变量
- 使用哈希表:用空间换时间(如两数之和问题)
经典例题
| 题型 | 说明 |
|---|---|
| 百钱买百鸡 | 枚举鸡的数量,满足总价和总数 |
| 水仙花数 | 枚举三位数,各位立方和等于自身 |
| 完全平方数 | 枚举范围内的完全平方数 |
| 勾股数 | 枚举直角三角形的三条边 |