超级台阶

有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法。 输入 输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。www.2cto.com 输出 对于每个测试实例,请输出不同走法的数量。 样例输入 2 2 3 样例输出 1 2 解题思路:      1:思路:DP+打表                         2:假设当前在第i个台阶,那么由于一次能够上一个或两个台阶,那么就有,当前的台阶可能由i-1而来,或由i-2而来,所以dp[i] = dp[i-1]+dp[i-2];

代码: [cpp]  #include <algorithm>  #include <iostream>  #include <cstring>  #include <string>  #include <vector>  #include <cstdio>  #include <stack>  #include <queue>  #include <cmath>  #include <set>  using namespace std;  #define MAXN 41    int n , m;  int dp[MAXN];    void solve() {      dp[1] = 0 ; dp[2] = 1 ; dp[3] =2;      for(int i = 4 ; i <= MAXN; i++)          dp[i] = dp[i-1]+dp[i-2];  }    int main() {      //freopen("input.txt" , "r" , stdin);      solve() ; scanf("%d%*c" , &n);      while(n--){          scanf("%d%*c" , &m);          printf("%d\n" , dp[m]);      }      return 0;  }

时间: 2024-08-02 14:52:07

超级台阶的相关文章

超级台阶 NYOJ 76

1 #include<stdio.h>//超级台阶(76) 2 #include<string.h> 3 int f(int x){ 4 int sum=0,i,a[45],t; 5 memset(a,0,sizeof(a)); 6 a[0]=1;a[1]=1; 7 for(i=0;i<x;i++){ 8 if(i>=2)a[i]=a[i-1]+a[i-2]; 9 sum=a[i]; 10 } 11 return sum; 12 } 13 int main() 14 {

nyoj76超级台阶 fibonacci数

题意规定m=1是为0,m=2时为1,m=3时为2: 这时候我们可以这样想,假如台阶数为k,那么有多少种呢?这时候我们可以想到当为k时比k-1多了一个台阶,k可以等于(这种说法不恰当 ,理解就行 不是等于,下同)k-1的数目,因为最后相当于在k-1的基础上再上一步. 由于可以同时上两步,我们又考虑到了k-2,k比k-2多了2个台阶,k又等于(上同)k-2的数目,因为最后相当于在k-2的基础上再上两步. 所以经过终结m(k)=m(k-1)+m(k-2); #include <stdio.h> in

NYOJ 76 超级台阶

#include<stdio.h>int a[50];int main(){ int num; scanf("%d",&num); while(num--) { a[1]=0; a[2]=1; a[3]=2; for(int i=4;i<50;i++) a[i]=a[i-1]+a[i-2]; int m; scanf("%d",&m); printf("%d\n",a[m]); }} // 简单动态规划

超级台阶 (NYOJ—76)

很简单的高中数学题,写出来主要是提醒自己,写完递推公式(尤其是公式)一定要检查多遍. 1 #include<stdio.h> 2 #include<string.h> 3 4 int M; 5 int num; 6 int d[102]; 7 8 int solve(int i) 9 { 10 if(d[i]>=0) 11 return d[i]; 12 if(i==2) 13 return d[i]=1; 14 else if(i==3) 15 return d[i]=2;

NYOJ-超级台阶

超级台阶 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. 输入 输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数. 输出 对于每个测试实例,请输出不同走法的数量. 样例输入 2 2 3 样例输出 1 2 代码: #include<

nyoj 76

超级台阶 时间限制:1000 ms  |  内存限制:65535 KB 难度:3 描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. 输入 输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数. 输出 对于每个测试实例,请输出不同走法的数量. 样例输入 2 2 3 样例输出 1 2 来源 [苗栋栋]原创 上传者

超级搬运工

前我们往屏幕输出了一个Hello,费了老大的劲.有没有什么更简单的方法呢?当然有啦. 我们把所有的文字对应的Ascll码统一放到一块内存里面.再把这些东西统一搬进去显存里面. mov cx,10ES:B800DI:0 DS:07C0SI:8 rep movsb byte ptr [ES:DI],byte ptr [DS:SI] 超级搬运工:1.要搬的东西的在哪里.2.把东西搬到哪里去.3.每一次可以搬多少东西,需要搬多少次.4.从上往下搬,还是从下往上搬. movsb  32位  16位 8位寄

noi Big String 超级字符串

//来自2017青岛信息竞赛第一题 9269:Big String超级字符串 查看 提交 统计 提问 总时间限制:  10000ms 单个测试点时间限制:  1000ms 内存限制:  131072kB 描述 fish在无数次oi竞赛的狱炼之后,悟出一个真理,往往越容易的题目,陷阱越深.由此,fish创作了这道题目. fish首先给出两个短串A='4567' (4个字符), B='123'(3个字符).反复进行如下的操作得到一个长串C. (1)C=B+A (例如:A='4567' ,B='123

【No.2 Ionic】超级逗表情 App

本人使用Ionic框架开发了一个 超级逗表情 的App 依赖插件 cordova-plugin-app-version 0.1.9 "AppVersion" cordova-plugin-file 4.3.0 "File" cordova-plugin-file-opener2 2.0.2 "File Opener2" cordova-plugin-file-transfer 1.6.0 "File Transfer" cor