1. 程式人生 > >[洛谷 1044][2003 NOIP普及組] 棧 {Catalan數列}

[洛谷 1044][2003 NOIP普及組] 棧 {Catalan數列}

題目

解題思路

我只知道這道題可以用CatalanCatalan數列

CatalanCatalan數列是什麼?

  • Catn=C2nnn+1Cat_{n}=\frac{C_{2n}^{n}}{n+1}

CatalanCatalan數列可以做什麼題目?

  • n個左括號和n個右括號組成的合法括號序列的數量
  • 1,2,……,n經過一個棧,形成的合法出棧序列的數量
  • n個節點構成的不同二叉樹的數量
  • 在平面直角座標系上,每一步只能向上或向右走,從(0,0)(0,0)(n,m)(n,m)並且除兩個端點外不接觸直線y
    =xy=x
    的路線數量

程式碼

#include<cstdio>
using namespace std; 
int n,f[1010];
int main()
{
	scanf("%d",&n); f[0]=f[1]=1;
	for (int i=2;i<=n;i++)
	 for (int j=0;j<i;j++)
	 f[i]+=f[j]*f[i-j-1]; 
	printf("%d",f[n]); 
}