• 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(递归与动态规划结合)

说明

  1. 难度评估依据
    • 一星题多为直接套用递归公式,边界条件简单;五星题需处理递归深度优化或结合动态规划(如Tiling问题)。
    • 汉诺塔、全排列等题目因涉及递归思想的典型应用,难度高于基础数值递归题。
  2. 注意事项
    • 实际难度可能因题目数据规模不同而变化(如Pell数列若涉及大数,需考虑递归优化)。
    • 括号匹配、文件结构图等题目需结合字符串处理或树结构,逻辑复杂度更高。
  3. 学习建议
    • 从一星题入手掌握递归基础,再逐步挑战排列、数学转换类题目,最后学习递归与动态规划的结合优化。

0 条评论

目前还没有评论...