一、dp水划分
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#define ll long long
using namespace std;
const int maxn=55;
ll dp[maxn][maxn];
int main(void)
{
int n;
while(scanf("%d",&n)!=EOF)
{
memset(dp,0,sizeof(dp));
for(int i=1;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(j==1||j==i)
{
dp[i][j]=1;
continue;
}
dp[i][j]+=dp[i-1][j-1];
if(i-j>=j) dp[i][j]+=dp[i-j][j];
}
}
ll ans=0;