XJOI 3265 Climb the stairs 爬楼梯 题解

这篇博客介绍了一个信息学竞赛题目——XJOI 3265 爬楼梯,每次可以跨一步或两步,求解到达最后一级台阶的不同走法数量。博主通过动态规划(DP)解释了问题的解决方案,指出这是一个斐波那契数列问题,并给出了动态转移方程。此外,还分享了其他几道XJOI题目的解题链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

英文:

Time Limit:0.2s Memory Limit:32M

Description

这里写图片描述
Every time you can climb one step or two steps,please calculate how many ways you can climb the final steps.

Input

One integer n (The number of steps) 1<=n<=80

Output

One integer.

Sample Input

2

Sample Output

2

中文:

时间:0.2s 空间:32M

题目描述:

你站在一段楼梯面前,陷入了沉思,你每次可以跨两级,或者跨一级,问你走到最后一级台阶一共有多少种不同的走法。
这里写图片描述

输入格式:

输入一个整数n,表示台阶的数量
输出格式:
输出一个整数

样例输入:

2

样例输出:

2

约定:

1<=n<=80

提示:

这道题的其实一眼就看出是斐波那契数列,开long long勉强可以装的下。所以是一道递归的题。但是其中的原理是什么呢?在博主看来,是极简单的动态规划(DP)。其中,a[i]表示到第i级台阶的方案总数。根据题意,动态转移方程式是:a[i]=a[i-1]+a[i-2] (i>2),答案为a[n]。代码如下:

#include <iostream>
#include <cstdio>
#include <string>
#include <cstring>
#include <algorithm>
#include <cmath>
#define N 100
long long a [ N ] , n ; 
using namespace std ;
int main ( )
{
    cin >> n ;
    a [ 0 ] = 0 ;
    a [ 1 ] = 1 ;
    a [ 2 ] = 2 ;
    for ( int i = 3 ; i <= n ; i ++ ) a [ i ] = a [ i - 1 ] + a [ i - 2 ] ;
    cout << a [ n ] ;
    return 0 ;
}

相关链接:

XJOI 题解小全:
https://blog.youkuaiyun.com/zj_mrz/article/details/80949787

XJOI 3266 Dyeing 染色 题解:
https://blog.youkuaiyun.com/zj_mrz/article/details/81060961

XJOI 1210 二项式展开 题解:
https://blog.youkuaiyun.com/zj_mrz/article/details/80969339

XJOI 3330 Knight moving 骑士出行 题解:
https://blog.youkuaiyun.com/zj_mrz/article/details/81031135

XJOI 3585 The rescue plan 营救计划 题解:
https://blog.youkuaiyun.com/ZJ_MRZ/article/details/81032429

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值