【codevs 6162】 Meronri爬楼梯

来源:互联网 发布:python基础教程下载 编辑:程序博客网 时间:2024/06/06 02:45

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;}
原创粉丝点击