题解:利用卡特兰数的几何意义,题目就可以转化为一个棋盘格,可以向下走或是向右走,但是不可以逾越对角线,就可以了。
#include <cstdio>
#include <iostream>
using namespace std;
long long f[][];
int main()
{
int m,n;
for(int i=; i<; i++)
f[i][]=i;
for(int m=; m<=; m++)
for(int n=; n<=; n++)
{
f[m][n]=f[m-][n]+f[m][n-];
if (m<n) f[m][n]=;
}
while (cin>>m>>n) cout<<f[m][n]<<endl;
return ;
}