HDU 2041 超级楼梯 简单DP动态规划 递归

原创 2016年09月09日 20:04:10

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

超级楼梯,也是比较简单的DP,DP最重要的是状态转移方程,和边界条件的设定,不能出现访问错误等东西。
a[i]表示的是在i这个地方最优的解。a[i]=a[i-1]+a[i-2]
其实我觉得搞懂这些就够了,前提是你已经成功了,他非常的抽象,并不是很好理解。

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <string.h>
#include <math.h>
#include <queue>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
int a[100];
int bfs(int N)
{
    if(a[N]>0)  
       return a[N];
     if(N==1)
        return 0;
    else if(N==2)
        return 1;
    else if(N==3)
        return 2;     
    else 
       a[N]=bfs(N-1)+bfs(N-2);  
     return a[N];   
}
int main()
{
    int T;
    scanf("%d",&T);
    while(T--)
    {
        int N;
        scanf("%d",&N);
        printf("%d\n",bfs(N));
    }
    return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[2041]: 超级楼梯(递归)

Problem Description 有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?Input 输入数据首先包含一个整数N,表示测试实例的个数,然后...

ACM-简单题之超级楼梯——hdu2041

超级楼梯 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissi...

9.9递归和动态规划(一)——小孩上楼梯的方式的种类

/**  * 功能:有个小孩正在上楼梯,楼梯有n阶台阶,小孩一次可以上1阶、2阶或3阶。计算小孩上楼梯的方式有多少种。  */ 两种方法: 方法一: //递归法 /** ...

HDU 2044 一只小蜜蜂... 斐波那契问题 2041 超级楼梯

老汉也即将面临找工作的抉择,为了不让自己死相太难看,现在打算刷刷题。都是比较粗浅,大神轻拍! 斐波那契定义 比萨的列奥纳多,又称斐波那契(Leonardo Pisano ,Fibonacci, Leo...
  • bsdcfp
  • bsdcfp
  • 2013-11-05 11:22
  • 1564

简单的算法问题9——爬楼梯(动态规划)

简单的算法问题9——爬楼梯 (动态规划)所有算法均是用C++编写 所有题目均是来自计蒜客题目假设你现在正在爬楼梯,楼梯有 nn 级。每次你只能爬 11 级或者 22 级,那么你有多少种方法爬到楼梯的...

HDU 5366 简单动态规划DP

这个题意思是有一行长度为1*N,然后求解至少放一个木桩有多少种办法。 博主我是用一种笨的方法,也就是模拟,如果想不出可以用这种方法,笨但是对于背包问题很有效。请看下图: 这样可以写出方程f[i,j...

动态规划dp(简单应用)hdu 2151 Worm(石头)

dp(水题),大家可以尝试下做下

基于连通性状态压缩的动态规划--【插头DP】模板超级详细解释

断断续续卡了本公举三天的插头dp终于搞完了,貌似好多网友也都是学了好多天才搞懂的,特别用成就感,作为一个模板160+行的dp也是醉了 首先一定要看陈丹琪的论文!一个高中女孩能让许多大老爷们为...

ACM递归与动态规划(三)

  • 2012-10-19 21:45
  • 43KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)