https://ac.nowcoder.com/acm/contest/554#question
A
#include <bits/stdc++.h> using namespace std; int N; long long dp[110][110]; int main() { scanf("%d", &N); memset(dp, 0, sizeof(dp)); dp[1][1] = 1, dp[1][0] = 1; for(int i = 2; i <= N; i ++) { for(int j = 0; j <= i; j ++) { for(int k = 0; k <= j && k <= i - 1; k ++) { dp[i][j] += dp[i - 1][k]; } } } long long ans = 0; for(int i = 0; i <= N; i ++) ans += dp[N][i]; printf("%lld\n", ans - 1); return 0; }