梁旭罡分享。
2003普及组。
这是一个卡特兰数。(很多栈的问题都可以用卡特兰数解决)
证明大概是证明不出来的,但是以后发现规律就可以直接使用,
记住前几项(第0项开始)1、1、2、5、14、42。。。以后如果相同规律就可以使用。
递推公式:f[i]=f[i-1]*(4*i-2)/(i+1)
(注意要用long long)
#include <iostream> using std::cout; using std::cin; long long f[500]; int main() { long n; cin >> n; f[0] = 1; f[1] = 1; for (long i=2;i<n+1;i++) f[i] = f[i-1]*(4*i-2)/(i+1); cout << f[n]; }