• C++
  • OpenJudge NOI 2.1 基本算法之枚举 题目难度排序与知识点分类

  • @ 2025-7-19 9:31:35

http://noi.openjudge.cn/ch0201/

OpenJudge NOI 2.1 基本算法之枚举 题目难度排序与知识点分类

一、按难度星级从低到高排序(基于尝试人数、题目逻辑复杂度综合判断)

难度星级仅为参考,同一星级内难度相近,按逻辑复杂度递增排序:

  • ★☆☆☆☆(入门级)

    1. 1752 鸡兔同笼(基础算术枚举)
    2. 8760 Cantor表(规律枚举)
    3. 2983 谁是你的潜在朋友(简单统计枚举)
    4. 1809 两倍(两数关系枚举)
    5. 7649 我家的门牌号(范围枚举)
    6. 7650 不定方程求解(简单方程枚举)
    7. 2722 和数(两数和枚举)
  • ★★☆☆☆(基础级)

    1. 1943 满足条件的整数(多条件范围枚举)
    2. 7647 余数相同问题(数论条件枚举)
    3. 1973 确定进制(进制转换枚举验证)
    4. 7827 质数的和与积(质数+组合枚举)
    5. 3526 最简真分数(分数化简+枚举)
    6. 6184 找和为K的两个元素(数组元素枚举)
    7. 2472 子串计算(字符串子串枚举统计)
  • ★★★☆☆(进阶级)

    1. 1812 完美立方(多变量公式枚举)
    2. 6187 称体重(多轮比较枚举)
    3. 6188 比饭量(排序+条件枚举)
    4. 2723 因子问题(因子分解+范围枚举)
    5. 7621 硬币面值组合(组合数枚举)
    6. 1749 数字方格(网格填数条件枚举)
    7. 7217 猴子吃桃(逆向递推+枚举验证)
  • ★★★★☆(挑战级)

    1. 15 Counterfeit Dollar(逻辑推理+多条件枚举)
    2. 1978 生理周期(中国剩余定理思想枚举)
    3. 2673 比赛排名(排列组合枚举)
    4. 755 Flip Game(二维网格翻转枚举)
    5. 7216 Minecraft(三维方块放置枚举)
  • ★★★★★(高难度)

    1. 1813 熄灯问题(二维网格状态枚举+递推)
    2. 1815 画家问题(二维网格涂色枚举优化)
    3. 1816 拨钟问题(多变量联动枚举+最小步数)
    4. 1661 Bomb Game(二维区域安全距离枚举)
    5. 250 Safecracker(字符串密码组合枚举)
    6. 7213 垃圾炸弹(范围影响枚举+最大覆盖)

二、按知识点分类汇总

  1. 基础算术与统计枚举

    • 核心:通过遍历范围或集合,验证简单条件或统计结果。
    • 题目:1752 鸡兔同笼、2983 谁是你的潜在朋友、8760 Cantor表、1809 两倍、7649 我家的门牌号、7650 不定方程求解、2722 和数。
  2. 数论相关枚举

    • 核心:结合余数、进制、质数、因子等数论知识,枚举验证条件。
    • 题目:1973 确定进制、7647 余数相同问题、7827 质数的和与积、3526 最简真分数、2723 因子问题、1943 满足条件的整数。
  3. 字符串与数组枚举

    • 核心:遍历字符串或数组元素,处理子串、元素关系等。
    • 题目:2472 子串计算、6184 找和为K的两个元素、1749 数字方格。
  4. 逻辑推理与条件枚举

    • 核心:通过多轮条件筛选,排除不可能情况,缩小枚举范围。
    • 题目:15 Counterfeit Dollar、6187 称体重、6188 比饭量、1978 生理周期。
  5. 组合与排列枚举

    • 核心:枚举所有可能的组合或排列,验证约束条件。
    • 题目:1812 完美立方、2673 比赛排名、7621 硬币面值组合、250 Safecracker。
  6. 网格与状态翻转枚举

    • 核心:二维/三维网格中,枚举翻转或操作的状态,计算结果。
    • 题目:1813 熄灯问题、1815 画家问题、755 Flip Game、7216 Minecraft、7213 垃圾炸弹、1661 Bomb Game。
  7. 复杂联动问题枚举

    • 核心:多变量相互影响,需通过枚举部分变量推导其他变量,优化枚举效率。
    • 题目:1816 拨钟问题(多变量联动)、7217 猴子吃桃(逆向枚举)。

说明:枚举算法的核心是“遍历所有可能解并验证条件”,难度差异主要体现在:

  • 枚举范围的大小(需优化以避免超时);
  • 条件的复杂度(单条件/多条件联动);
  • 是否需要结合其他思想(如递推、数学公式)缩小范围。

0 条评论

目前还没有评论...