0
点赞
收藏
分享

微信扫一扫

P2532 [AHOI2012]【一本通提高组合数学】树屋阶梯

酷子腿长一米八 2022-04-19 阅读 46

[AHOI2012]树屋阶梯

题目描述

输入格式

一个正整数N( 1 ≤ N ≤ 500 1\le N \le 500 1N500),表示阶梯的高度。

输出格式

一个正整数,表示搭建方法的个数。(注:搭建方法的个数可能很大)

输入输出样例

样例输入1

3

样例输出1

5

说明/提示

40 % 40\% 40% 的数据: 1 ≤ N ≤ 20 1\le N \le 20 1N20

80 % 80\% 80% 的数据: 1 ≤ N ≤ 300 1\le N \le 300 1N300

100 % 100\% 100% 的数据: 1 ≤ N ≤ 500 1\le N \le 500 1N500

Code

#include<bits/stdc++.h>
#define LL long long
using namespace std;
LL n, p, f[505][505], len = 1;
void c(LL u)
{
	for (LL i(1); i <= len; ++i)
		f[u][i] = f[u - 1][i] + f[u][i];
	for (LL i(1); i <= len; ++i)
		f[u][i + 1] += f[u][i] / 10, f[u][i] %= 10;
	if (f[u][len + 1] != 0)
		++len;
}
int main()
{
	cin >> n;
	f[1][1] = 1;
	for (LL i(2); i <= n + 1; ++i)
		for (LL j(1); j <= i; ++j)
			c(j);
	for (LL i(len); i > 0; --i)
		cout << f[n][i];
}
举报

相关推荐

0 条评论