08-基础算法/02-简单枚举

来自三三百科
跳转到导航 跳转到搜索

简单枚举

枚举(枚举法/穷举法)是最直观的算法思想:列出所有可能的情况,逐一检查是否符合要求

基本模板

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++;

优化方向

  • 减少枚举范围:通过数学分析减少不必要的枚举
  • 剪枝:在枚举过程中提前排除不可能的方案
  • 改变枚举顺序:先枚举约束多的变量
  • 使用哈希表:用空间换时间(如两数之和问题)

经典例题

题型 说明
百钱买百鸡 枚举鸡的数量,满足总价和总数
水仙花数 枚举三位数,各位立方和等于自身
完全平方数 枚举范围内的完全平方数
勾股数 枚举直角三角形的三条边