#41263 #129. 走楼梯2

楼梯有 n 阶,上楼可以一步上一阶,也可以一步上二阶。

但你不能连续三步都走两阶,计算走到第n阶共有多少种不同的走法。

输入格式

一行,一个数字,表示n。

输出格式

输出走楼梯的方式总数。

样例输入

6

样例输出

12

数据规模

对于100%的数据,保证n≤50。

第一种方法,DFS+打表

DFS在n = 40左右时速度明显下降,所以我们可以把 n=40~50的ans打表

AC代码如下:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<vector>
#include <iomanip>
using namespace std;
typedef long long  ll;
const int inf = 0x3f3f3f3f;
#define fo(x) for(int i = 1;i<=x;++i)
#define ios ios::sync_with_stdio(false);cin.tie(0), cout.tie(0)
const int N = 1e6+9;
ll ans = 0;
int n;
void dfs(int x,int flag)
{if(x==n){ans ++;return ; }if(x>n)   return ;if(flag != 2){dfs(x+1,0);dfs(x+2,flag+1);}else{dfs(x+1,0);}
}
int main()
{ios;cin>>n;if(n<40){dfs(0,0);cout<<ans<<"\n";}else{if(n==40)  cout<<55807826<<"\n";if(n==41)  cout<<87626508<<"\n";if(n==42)  cout<<137586526<<"\n";if(n==43) cout<<216031114<<"\n";if(n==44) cout<<339200673<<"\n";if(n==45) cout<<532595025<<"\n";if(n==46) cout<<836252647<<"\n";if(n==47) cout<<1313039846<<"\n";if(n==48)    cout<<2061665985<<"\n";if(n==49)    cout<<3237119305<<"\n";if(n==50)    cout<<5082754176<<"\n";}} 

第二种方法(正解)DP

水题,一看代码就明白了,就不多解释了(:

AC代码如下:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<vector>
#include <iomanip>
using namespace std;
typedef long long  ll;
const int inf = 0x3f3f3f3f;
#define fo(x) for(int i = 1;i<=x;++i)
#define ios ios::sync_with_stdio(false);cin.tie(0), cout.tie(0)
const int N = 1e6+9;
ll dp[55][5];
int main()
{ios;int n;cin>>n;dp[1][0] = 1;dp[1][1] = 0;dp[1][2] = 0;dp[2][0] = 1;dp[2][1] = 1;dp[2][2] = 0;for(int i = 3;i<=n;i++){dp[i][0] = dp[i-1][0]+dp[i-1][1]+dp[i-1][2];dp[i][1] = dp[i-2][0];dp[i][2] = dp[i-2][1];}cout<<dp[n][0]+dp[n][1]+dp[n][2]<<"\n";
}

Namomo Spring Camp Div2 Week1 - 第二次打卡相关推荐

  1. Namomo Spring Camp Div2 Week1 - 第五次打卡

    105 Alice的德州扑克 德州扑克是目前世界上最流行的扑克游戏,全世界有众多相关的比赛,例如是 WSOP,WPT,EPT等,也让这款游戏的玩法变得层出不穷,丰富多变. 不要被简单的游戏规则而误导, ...

  2. Namomo Spring Camp Div2 Week1 - 第一次打卡

    题目如下: 101 特殊的正方形 输入n,输出n行n列的由+和.组成的正方形,其中最外面一圈全是+,第二圈全是.,...,对于第i圈,如果i是奇数,那么全是+,否则全是.. 输入格式 一行,一个整数n ...

  3. Namomo Spring Camp Div2 Week1 - 第四次打卡

    104 简单分数统计 N 个好朋友在codeforces上参加一场包含 M 个题目的比赛, 比赛期间codeforces网站一共有 k 次提交. 已知每个题目的分数, 但是由于他们只能查到在比赛期间c ...

  4. Namomo Spring Camp Div2 Week1 - 第三次打卡

    103 走路 有一条很长的数轴,一开始你在0的位置.接下来你要走n步,第ii步你可以往右走ai或者bi. 问n步之后,0到m的每个位置,能不能走到? 输入格式 第一行,两个整数n,m. 接下来nn行, ...

  5. 507 Lusir的游戏 二分 数论 [代码源][namomo spring camp]每日一题div2

    可以二分硬搞一下,注意check里面res容易炸,加特判 除此以外还可以纯数学搞,思路写这里 假设我们到达了第i个点 那么 Ei=2∗Ei−1−H(i)=2iE0−∑j=1i2i−jH(j)Ei> ...

  6. 505 新国王游戏 思维 [代码源][namomo spring camp]每日一题div2

    你仔细观察这两个序列,在任意一个位置i以及i+1他们的位置相互交换的话会影响前面的值以及后面的值你仔细观察这两个序列,在任意一个位置i以及i+1他们的位置相互交换的话会影响前面的值以及后面的值你仔细观 ...

  7. 406 “Z”型矩阵 思维+树状数组 [代码源][namomo spring camp]每日一题div1

    Educational Codeforces Round 8 E. Zbazi in Zeydabad codeforces题目链接 一道CF的E题 晚点补文字,先给代码 //acmer mxc #i ...

  8. activiti高亮显示图片_【正点原子FPGA连载】第二十章SD卡读BMP图片HDMI显示实验领航者 ZYNQ 之嵌入式开发指南...

    1)实验平台:正点原子领航者ZYNQ开发板 2)平台购买地址:https://item.taobao.com/item.htm?&id=606160108761 3)全套实验源码+手册+视频下 ...

  9. Linux设备驱动子系统第二弹 - SD卡

    1. 总论 2. 主控制器 3. 协议层 4. 块设备 1. 总论 1.1 概念 MMC - MultiMedia Card SD    - Secure Digital Card 1.2 分类 按存 ...

最新文章

  1. 冠军奖30万!刘强东搞了个“猪脸识别”比赛,中美两地同时启动(附比赛详细日程及赛题说明)
  2. MIT重新发明飞机:无需燃料,每秒万米喷射带你上天 | Nature封面
  3. u-boot-1.3.4移植到mini2440+128M nand boot(3)
  4. 记住:用户不是傻*,她是你的老婆大人
  5. Struts1.2+Spring2.5+Hibernate3.2框架搭建(十五)
  6. 【无标题】线程池中阻塞队列的作用,为什么是先添加队列而不是先创建最大线程
  7. 复练-关于面试的科技树-V1004-求职面试的阶段和策略
  8. ospf配置方法及相关问题
  9. git 取消head的游离状态
  10. 学习面向对象的三条主线之三 面向对象的三大特征 关键字
  11. Python命令行程序项目自动化GUI显示操作神器Gooey实践
  12. 华为 eNSP 模拟器安装教程(内含下载地址)
  13. 经典蝙蝠算法MATLAB实现
  14. 电脑PHP动画制作画板,Canvas在线画图—简单制作一个画板
  15. 数据分析09|数据转换
  16. Introducing a forensics data type taxonomy of acquirable artefacts from PLCs
  17. 给一个字符类型的数组chas和一个整数size,请把大小为size的左半区整体右移到右半区,右半区整体移动到左边。
  18. 智伴机器人tf卡下载地址_入门操作详解教你如何玩转智伴1X机器人!
  19. fatal error C1004: 发现意外的文件尾
  20. 字符编码,ASCII、Unicode与UTF-8的理解

热门文章

  1. kafka2.3.1+zookeeper3.5.6+kafka-manager2.0.0.2集群部署(centos7.7)
  2. 23.网市场云建站系统部署
  3. cloudflare 批量修改域名DNS
  4. 【Nginx那些事】nginx配置实例(三)动静分离
  5. 【HTML】表单练习
  6. 【C语言】赋值运算中的类型转换
  7. C#LeetCode刷题-记忆化
  8. mysql connection_id 表锁的应用
  9. 文件从头开始读函数_如何从头开始编写自己的Promisify函数
  10. -bash-退出_为什么这么多开发人员在找到工作之前就退出了。 请-不要。