Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
113131 | 陈家宝 | [AHOI2012]树屋阶梯 | C++ | 通过 | 100 | 92 MS | 5420 KB | 547 | 2023-12-01 13:34:24 |
#include<bits/stdc++.h> using namespace std; int dp[505][2005],maxl = 0; void add(int a[],int b[]){ for (int i = 0;i <= maxl;i++){ a[i] += b[i]; a[i + 1] += a[i] / 10; a[i] %= 10; if (i == maxl && a[i + 1] != 0){ maxl++; } } } int main(){ int n; cin>>n; dp[1][0] = 1; for (int i = 2;i <= n + 1;i++){ for (int j = 1;j <= i;j++){ add(dp[j],dp[j - 1]); } } int len = 2000; while (dp[n][len] == 0 && len >= 1){ len--; } for (int i = len;i >= 0;i--){ cout<<dp[n][i]; } return 0; }