- C++
NOI / 2.2基本算法之递归和自调用函数 难度星级排序(1-5星,从易到难)
- 2025-5-27 13:53:47 @
http://noi.openjudge.cn/ch0202/
一、难度星级排序(1-5星,从易到难)
⭐ 一星(基础递归应用)
- 1755 菲波那契数列
(知识点:简单递归公式f(n)=f(n-1)+f(n-2),边界条件明确) - 7592 求最大公约数问题
(知识点:递归实现欧几里得算法,gcd(a,b)=gcd(b,a%b)) - 3089 爬楼梯
(知识点:递归求斐波那契型递推关系,f(n)=f(n-1)+f(n-2)) - 666 放苹果
(知识点:递归分情况讨论“有盘子不放”和“全放盘子”的情况)
⭐⭐ 二星(递归逻辑扩展)
- 1750 全排列
(知识点:递归生成排列,需处理元素标记和回溯) - 1751 分解因数
(知识点:递归枚举因数,需注意顺序和重复分解) - 6261 汉诺塔问题
(知识点:递归模拟移动过程,理解n层汉诺塔的转移逻辑)
⭐⭐⭐ 三星(递归与数据结构结合)
- 1777 文件结构“图”
(知识点:递归遍历树状结构,可能涉及字符串解析和层级处理) - 2705 括号匹配问题
(知识点:递归检查嵌套括号,需处理多层括号的匹配规则)
⭐⭐⭐⭐ 四星(复杂递归与数学转换)
- 8758 2的幂次方表示
(知识点:递归将数字转换为2的幂次表达式,需处理指数递归表示) - 1788 Pell数列
(知识点:递归实现Pell递推公式f(n)=2*f(n-1)+f(n-2),需注意大数计算)
⭐⭐⭐⭐⭐ 五星(递归与动态规划优化)
- 9273 PKU2506 Tiling
(知识点:递归推导状态转移方程,可能涉及矩阵快速幂优化,避免递归栈溢出)
二、知识点分类表
知识点类别 | 题目ID及标题 |
---|---|
基础递归函数 | 1755菲波那契数列、7592最大公约数、3089爬楼梯、1788 Pell数列(递归公式) |
排列组合递归 | 1750全排列、666放苹果(分情况递归) |
数学问题递归 | 1751分解因数、8758 2的幂次方表示(数学转换) |
数据结构递归 | 1777文件结构图(树状结构遍历)、2705括号匹配(栈结构模拟) |
经典递归模型 | 6261汉诺塔问题(递归分治模型)、9273 Tiling(递归与动态规划结合) |
说明
- 难度评估依据:
- 一星题多为直接套用递归公式,边界条件简单;五星题需处理递归深度优化或结合动态规划(如Tiling问题)。
- 汉诺塔、全排列等题目因涉及递归思想的典型应用,难度高于基础数值递归题。
- 注意事项:
- 实际难度可能因题目数据规模不同而变化(如Pell数列若涉及大数,需考虑递归优化)。
- 括号匹配、文件结构图等题目需结合字符串处理或树结构,逻辑复杂度更高。
- 学习建议:
- 从一星题入手掌握递归基础,再逐步挑战排列、数学转换类题目,最后学习递归与动态规划的结合优化。
0 条评论
目前还没有评论...