动态规划处理台阶的问题

题目:假设有n阶台阶,小米从第一个台阶要走动目的台阶,每次可以跨越奇数个台阶,问有多少种走法?动态规划的三部曲:第一个就是确定变量含义,第二个就是确定状态转化方程,第三个就是确定边界条件,最后来考虑最优解,空间复杂度和时间复杂度问题。

#include<iostream>
#using namespace std;
int main()
{
     const int mod=100007;
     dp[1001];
     int n;
     cin>>n;
       dp[0]=1;
     for (int i=1;i<=n;i++)//这是确定要到第几个台阶的
         {
           dp[i]=0;每设置不同的台阶时,然后寻求方法的时候,都要进行归零初始化
            for (int j=i-1;j>=0;i-=2;)//这是到达目的台阶的走法
                {
                   dp[i]+=dp[j];
                    dp[i]%=mod;//这是为了数据过大,进行取模操作。
                 }
                   cout<<dp[n]<<endl;
          }
            return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值