zoukankan      html  css  js  c++  java
  • Problem J

    Problem Description
    有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?

    Input
    输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1<=M<=40),表示楼梯的级数。

    Output
    对于每个测试实例,请输出不同走法的数量

    Sample Input
    2
    2
    3

    Sample Output
    1
    2

    题意:自己看题目吧,这么简单明了的题意0.0;
    解题思路:没啥思路。。。。。。上学期做过的题,每次状态的转移都是上一层和上两层状态的和;
    感悟:还能记得上学期的题,还行,但是更能理解状态转移的过程:
    代码:
    #include
    #include
    #define maxn 45
    using namespace std;
    int n,m,dp[maxn]={0};
    void solve()
    {
        dp[1]=1;
        dp[2]=1;
        for(int i=3;i<45;i++)
        {
            dp[i]=dp[i-1]+dp[i-2];//每次的状态转移都是前1层和前两层状态的和
        }
    }
    int main()
    {
        //freopen("in.txt", "r", stdin);
        solve();
        scanf("%d",&n);
        while(n--)
        {
            scanf("%d",&m);
            printf("%d ",dp[m]);
        }
        return 0;
    }
  • 相关阅读:
    叉积
    Linux IO模型
    uva10201-dp
    如何在Java内使用Protobuf
    uva10651-记忆化搜索
    ZK的几个常用方式
    uva10304-最优二叉搜索树
    uva590-DP-Always on the run
    Git神操作
    在容器内运行JVM时内存的问题
  • 原文地址:https://www.cnblogs.com/wuwangchuxin0924/p/5781581.html
Copyright © 2011-2022 走看看