据说是卡特兰数
又是DP
#include<stdio.h>
#include<string.h>
int main(){
int m,n,i,j;
__int64 dp[21][21]={0};
dp[0][1]=0; dp[1][0]=1;
for(i=1;i<21;i++) dp[i][0]=1;
for(i=1;i<21;i++)
for(j=1;j<21;j++){
if(i>=j) dp[i][j]=dp[i-1][j]+dp[i][j-1];
if(i<j) dp[i][j]=0;
}
while(~scanf("%d%d",&m,&n)){
printf("%I64d\n",dp[m][n]);
}
}