- C++
OpenJudge NOI 2.1 基本算法之枚举 题目难度排序与知识点分类
- 2025-7-19 9:31:35 @
http://noi.openjudge.cn/ch0201/
OpenJudge NOI 2.1 基本算法之枚举 题目难度排序与知识点分类
一、按难度星级从低到高排序(基于尝试人数、题目逻辑复杂度综合判断)
难度星级仅为参考,同一星级内难度相近,按逻辑复杂度递增排序:
-
★☆☆☆☆(入门级)
- 1752 鸡兔同笼(基础算术枚举)
- 8760 Cantor表(规律枚举)
- 2983 谁是你的潜在朋友(简单统计枚举)
- 1809 两倍(两数关系枚举)
- 7649 我家的门牌号(范围枚举)
- 7650 不定方程求解(简单方程枚举)
- 2722 和数(两数和枚举)
-
★★☆☆☆(基础级)
- 1943 满足条件的整数(多条件范围枚举)
- 7647 余数相同问题(数论条件枚举)
- 1973 确定进制(进制转换枚举验证)
- 7827 质数的和与积(质数+组合枚举)
- 3526 最简真分数(分数化简+枚举)
- 6184 找和为K的两个元素(数组元素枚举)
- 2472 子串计算(字符串子串枚举统计)
-
★★★☆☆(进阶级)
- 1812 完美立方(多变量公式枚举)
- 6187 称体重(多轮比较枚举)
- 6188 比饭量(排序+条件枚举)
- 2723 因子问题(因子分解+范围枚举)
- 7621 硬币面值组合(组合数枚举)
- 1749 数字方格(网格填数条件枚举)
- 7217 猴子吃桃(逆向递推+枚举验证)
-
★★★★☆(挑战级)
- 15 Counterfeit Dollar(逻辑推理+多条件枚举)
- 1978 生理周期(中国剩余定理思想枚举)
- 2673 比赛排名(排列组合枚举)
- 755 Flip Game(二维网格翻转枚举)
- 7216 Minecraft(三维方块放置枚举)
-
★★★★★(高难度)
- 1813 熄灯问题(二维网格状态枚举+递推)
- 1815 画家问题(二维网格涂色枚举优化)
- 1816 拨钟问题(多变量联动枚举+最小步数)
- 1661 Bomb Game(二维区域安全距离枚举)
- 250 Safecracker(字符串密码组合枚举)
- 7213 垃圾炸弹(范围影响枚举+最大覆盖)
二、按知识点分类汇总
-
基础算术与统计枚举
- 核心:通过遍历范围或集合,验证简单条件或统计结果。
- 题目:1752 鸡兔同笼、2983 谁是你的潜在朋友、8760 Cantor表、1809 两倍、7649 我家的门牌号、7650 不定方程求解、2722 和数。
-
数论相关枚举
- 核心:结合余数、进制、质数、因子等数论知识,枚举验证条件。
- 题目:1973 确定进制、7647 余数相同问题、7827 质数的和与积、3526 最简真分数、2723 因子问题、1943 满足条件的整数。
-
字符串与数组枚举
- 核心:遍历字符串或数组元素,处理子串、元素关系等。
- 题目:2472 子串计算、6184 找和为K的两个元素、1749 数字方格。
-
逻辑推理与条件枚举
- 核心:通过多轮条件筛选,排除不可能情况,缩小枚举范围。
- 题目:15 Counterfeit Dollar、6187 称体重、6188 比饭量、1978 生理周期。
-
组合与排列枚举
- 核心:枚举所有可能的组合或排列,验证约束条件。
- 题目:1812 完美立方、2673 比赛排名、7621 硬币面值组合、250 Safecracker。
-
网格与状态翻转枚举
- 核心:二维/三维网格中,枚举翻转或操作的状态,计算结果。
- 题目:1813 熄灯问题、1815 画家问题、755 Flip Game、7216 Minecraft、7213 垃圾炸弹、1661 Bomb Game。
-
复杂联动问题枚举
- 核心:多变量相互影响,需通过枚举部分变量推导其他变量,优化枚举效率。
- 题目:1816 拨钟问题(多变量联动)、7217 猴子吃桃(逆向枚举)。
说明:枚举算法的核心是“遍历所有可能解并验证条件”,难度差异主要体现在:
- 枚举范围的大小(需优化以避免超时);
- 条件的复杂度(单条件/多条件联动);
- 是否需要结合其他思想(如递推、数学公式)缩小范围。
0 条评论
目前还没有评论...