HDU2067(卡特兰数)
生活随笔
收集整理的這篇文章主要介紹了
HDU2067(卡特兰数)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Problem Descrption
小兔的叔叔從外面旅游回來(lái)給她帶來(lái)了一個(gè)禮物,小兔高興地跑回自己的房間,拆開一看是一個(gè)棋盤,小兔有所失望。不過(guò)沒過(guò)幾天發(fā)現(xiàn)了棋盤的好玩之處。從起點(diǎn)(0,0)走到終點(diǎn)(n,n)的最短路徑數(shù)是C(2n,n),現(xiàn)在小兔又想如果不穿越對(duì)角線(但可接觸對(duì)角線上的格點(diǎn)),這樣的路徑數(shù)有多少?小兔想了很長(zhǎng)時(shí)間都沒想出來(lái),現(xiàn)在想請(qǐng)你幫助小兔解決這個(gè)問(wèn)題,對(duì)于你來(lái)說(shuō)應(yīng)該不難吧!
Input
每次輸入一個(gè)數(shù)n(1<=n<=35),當(dāng)n等于-1時(shí)結(jié)束輸入。
Output
對(duì)于每個(gè)輸入數(shù)據(jù)輸出路徑數(shù),具體格式看Sample。
Sample Input
1 3 12 -1Sample Output
1 1 2 2 3 10 3 12 416024問(wèn)題分析:卡特蘭數(shù)
AC代碼:
#include<iostream>using namespace std;long int kta[36];int main(){kta[0]=kta[1]=1;int i,j;long int sum=0;for( i=2;i<=35;i++){sum=0;for( j=0;j<i;j++){sum+=(kta[j]*kta[i-j-1]);}kta[i]=sum;}int n;int flag=1;while(cin>>n){if(n==-1)break;printf("%d %d %I64d\n",flag,n,kta[n]*2);flag++;}return 0;}?
總結(jié)
以上是生活随笔為你收集整理的HDU2067(卡特兰数)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: POJ1321(DFS)
- 下一篇: HDU2068(错列排序)