LOI_summer的博客

凡所历经 莫非一成

【codevs 6162】 Meronri爬楼梯

6162 Meronri爬楼梯
时间限制: 1 s
空间限制: 2000 KB
题目等级 : 青铜 Bronze
题解
查看运行结果
题目描述 Description
一天,Meronri发现了一个n阶的楼梯,在这个有魔力的楼梯上,Meronri会轻功,所以她一次想爬多少级台阶都可以。Meronri脑子有点轻微的不正常,所以她想知道有多少种爬楼梯的方法。

因为Meronri要去楼梯上找宝藏,所以这个艰巨的任务就落在了你身上。

输入描述 Input Description
一行一个整数n

输出描述 Output Description
一行一个方案数s

样例输入 Sample Input
3

样例输出 Sample Output
4

数据范围及提示 Data Size & Hint
0<=n<=64

以下分别是1~4的情况

1

1 1

2

1 1 1

1 2

2 1

3

1 1 1 1

1 2 1

2 1 1

3 1

1 1 2

2 2

1 3

4

对于每一阶可以从之前任意状态转移
要注意最后一个点 n == 64 long long存不下
所以用unsigned long long
然而用printf输出 会是负数
所以cout

#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int MAXN = 233;
int n;
unsigned long long ds[MAXN];

int main(){
    scanf("%d",&n); 
    for(int i = 0; i <= n; i ++) ds[i] = 1;
    ds[1] = 1; ds[2] = 2;
    for(int i = 3; i <= n; i ++)
        for(int j = i - 1; j > 0; j --)
            ds[i] += ds[j];
    cout << ds[n] << endl;
    return 0;
}
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Loi_Shirley/article/details/78399100
上一篇【P98】zhxzhx?zhxzhx!
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭