2.3.2 COW PEDIGREES 奶牛家譜

2018-06-19 13:59 更新

解題思路:    

1.簡單動態(tài)規(guī)劃。基本思想是用小的二叉樹去組成大的二叉樹,最后輸出dp[k][n]-dp[k-1][n]恰好就是要求的n個點組成深度最多為k的方法數(shù)

2.設dp[i][j]表示j個點組成深度最多為i的二叉樹的方法數(shù),則動態(tài)規(guī)劃公式為:

   dp[i][j]=∑(dp[i-1][l]*dp[i-1][j-1-l])(1<=l<=j-2)

   dp[i][1]=1

3.注意:點的個數(shù)總為奇數(shù)。


核心代碼:

for(i=1;i<=k;i++)
    dp[i][1]=1;
for(i=1;i<=k;i++)
    for(j=3;j<=n;j+=2)
        for(l=1;l<=j-2;l+=2)
            dp[i][j]=(dp[i][j]+dp[i-1][l]*dp[i-1][j-1-l])%9901;




以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號