题目76:超级台阶
来源:互联网 发布:java编手机程序 编辑:程序博客网 时间:2024/05/20 18:43
题目链接:
http://acm.nyist.net/JudgeOnline/problem.php?pid=76
描述
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?
注:规定从一级到一级有0种走法。
输入
输入数据首先包含一个整数n(1≤n≤100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1≤m≤40), 表示楼梯的级数。
输出
对于每个测试实例,请输出不同走法的数量。
样例输入
22
3
样例输出
12
算法思想:
动态规划,如果使用递归,算法时间度太大,易超时。
源代码
#include <iostream>#include <cstring>using namespace std;int f[40];int dp(int n){ f[0] = f[1] = 0; f[2] = 1, f[3] = 2; for (int i = 4; i <= n; i++) { f[i] = f[i - 1] + f[i - 2]; } return f[n];}int main(){ int n, a; cin >> n; while (n--) { cin >> a; memset(f,0,40); cout << dp(a) << endl; } return 0;}
最优源代码
#include<iostream>using namespace std;int main(){int f[41]={0,0,1,2};for(int i=4;i<=40;i++){ f[i]=f[i-1]+f[i-2];}int k;cin>>k;for(int i=0;i<k;i++){ int j; cin>>j; cout<<f[j]<<endl;}}
算法复杂度:
由源代码可知,算法时间复杂度为O(n).
阅读全文
0 0
- 题目76:超级台阶
- NYOJ-题目76-超级台阶
- NYOJ题目76-超级台阶
- 南阳理工OJ_题目76 超级台阶
- nyoj 76 超级台阶
- nyoj-76-超级台阶
- nyoj 76-超级台阶
- NYOJ 76 超级台阶
- NYOJ 76--超级台阶
- NYOJ 76 超级台阶
- NYOJ 76 超级台阶
- 76 超级台阶
- nyoj 76 超级台阶
- NYOJ-76 超级台阶
- nyoj-76 超级台阶
- NYOJ 超级台阶 76
- NYOJ 76 超级台阶
- 76 超级台阶
- jeeplus-js-获取table中复选框选中的列
- Unfair Poll codeforce758 C
- 跨页面通信的各种姿势
- 批量修改同一张表
- ActiveMQ(二)-Spring集成JMS
- 题目76:超级台阶
- linux的poll机制
- linux系统监控工具
- jquery滚动页面底部时函数加载多次解决办法
- 洛谷 P1069 细胞分裂 质因数分解
- 做iOS的,学习算法有用否?
- 《Hibernate学习笔记五》Session 的update方法详解
- Tensorflow:tf.tables_initializer
- 微信小程序播放音频列表