递推与递归
文章平均质量分 79
洛谷算法题单
要减肥11
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
P1044 [NOIP 2003 普及组] 栈
摘要:本文探讨了计算给定操作数序列1,2,…,n通过栈操作可能产生的输出序列总数的问题。该问题等价于计算第n个卡特兰数,其递推公式为C(n)=∑C(i)*C(n-1-i)。文章给出了一个C++实现,通过动态规划方法预先计算并存储卡特兰数数组,最终输出C(n)作为结果。该算法时间复杂度为O(n²),适用于n≤18的情况,能够高效解决栈操作序列的计数问题。原创 2025-07-23 17:36:17 · 406 阅读 · 0 评论 -
P1002 [NOIP 2002 普及组] 过河卒
摘要:本文解决了一个棋盘路径计数问题,其中过河卒需要从(0,0)走到(n,m),只能向右或向下移动,同时要避开对方马及其控制点。使用动态规划方法,先标记马的控制区域,然后通过递推计算可达路径数。算法时间复杂度为O(nm),空间复杂度O(nm),适用于n,m≤20的情况。输入为B点坐标和马的坐标,输出为可行路径总数。示例输入6 6 3 3对应输出6,验证了算法的正确性。原创 2025-07-23 16:54:05 · 749 阅读 · 0 评论 -
P1255 数楼梯
这是一个计算爬楼梯不同走法的程序,采用动态规划和高精度处理。算法基于斐波那契数列关系:f(n)=f(n-1)+f(n-2),其中f(1)=1,f(2)=2。程序使用二维数组f[N][N]存储大数,每位数单独处理进位。对于输入n(1≤n≤5000),程序迭代计算并输出结果。时间复杂度为O(n^2),适用于大数情况。例如输入4输出5,表示4阶楼梯有5种走法。程序通过逐位相加和进位处理确保了大数计算的准确性。原创 2025-07-23 16:52:21 · 217 阅读 · 0 评论
分享