luogu1192:台阶问题:递推+优化

本文详细讲解了如何解决台阶问题,包括朴素的O(n*k)解法和优化后的O(n)解法。通过递推公式分析,给出了两种思路的代码实现,并指出在特定情况下如何优化计算过程,避免负数的出现。
摘要由CSDN通过智能技术生成

题目链接:有一个简化版本的题目:noi题库3525台阶问题
本文主要介绍了:
思路1 递推的朴素思维O(n*k)的相应解法和代码;
思路2 递推的优化O(n)的相应分析和代码;

另外还有记忆化递归,还有拓展数据之后的矩阵乘法,有兴趣的同学可以自行前往。


题目大意:
1 在走楼梯的时候,每次可以上1-k级,从地面开始走到第n级,有多少种方案数。


解题思路1:朴素直观:O(n*k)
1 当前如果是第 x 级,可以从 x-1,x-2,x-3....x-k,这 k 级楼梯走上来,所以,只要双重循环枚举就可以了;
2 要注意细节就是楼梯是从0开始的,没有负数;
3 记得取模;
上代码:

//luogu1192:台阶问题:朴素的递推 
//时间复杂度:n*k 

#include<bits/stdc++.h>
#define mo 100003
using namespace std;
int n,k,ans=0;
int f[100005];

int main()
{
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值