题解 | #跳台阶扩展问题#

跳台阶扩展问题

http://www.nowcoder.com/practice/953b74ca5c4d44bb91f39ac4ddea0fee

跳台阶问题 (plus)

这个问题看了【数据结构与算法】大佬的操作
写出他的状态转移方程:

f(n)=f(n-1)+.....f(1) //doge:我只能想到这一步

如果跳了一层,剩下n-1层也可如上式:

f(n-1) = f(n-2) + .....f(1)
化简可得:
f(n) = 2* f(n-1)
即:
f(n)/f(n-1) = 2

#include<iostream>
using namespace std;

int main(){
    int num;
    cin >> num;
    cout<< (1 << num-1) <<endl; 
}
全部评论
f3=f2+f1吗
点赞
送花
回复
分享
发布于 2022-03-19 22:03
你在恶心人吧,浪费老子时间看你代码!!!
点赞
送花
回复
分享
发布于 2022-03-19 22:22
秋招专场
校招火热招聘中
官网直投
不好意思,抱歉了,我语气不是很好,我觉得你还是换一种思考方式吧。你可以这样想,每一阶台阶都有两种状态,跳上或者没跳上,而最后一节台阶是一定要踏上的,所以状态是跳上,这样也就是2的n-1次方,再一次向你抱歉
点赞
送花
回复
分享
发布于 2022-03-25 22:35
我也学过一点dp,但是这种状态转移方程还是要基本检验一下,我反正验证不对
点赞
送花
回复
分享
发布于 2022-03-25 22:37
这里差一种可能,就是直接一下就跳到n
点赞
送花
回复
分享
发布于 2022-08-29 07:09 浙江
我爱小明这种方法可以,可以这样理解,每台台阶上都有一个昆虫,青蛙跳上去吃,不往后跳,那么每个昆虫要么吃,要么没有吃,
点赞
送花
回复
分享
发布于 2022-08-29 07:16 浙江
方程错了,按你说的,f3 = f2 + f1,而很显然f2 = 2, f1 = 1,那么f3 = f2+f1 = 2+1 = 3,与题意不符,转移方程应该是在右边加个1,即:fn = fn-1+fn-2+...+f2+f1+1
点赞
送花
回复
分享
发布于 2022-09-04 00:32 湖北

相关推荐

2 收藏 评论
分享
牛客网
牛客企业服务