獎勵二叉樹
問題描述
設有n個節點的二叉樹的中值遍歷為(l,2,3,…,n),其中數字1,2,3,…,n為節點號。每個節點都有壹個分數(都是正整數),第I個節點的分數是di,樹和它的每個子樹都有獎金。任意子樹(包括樹本身)的獎金計算方法如下:
左子樹的加分×右子樹的加分+子樹根的分數。
如果壹個子樹是空的,那麽它的加分是1,葉子的加分是葉子節點本身的分數。不管它的空樹。
試著找壹棵遍歷中值為(1,2,3,…,n)且得分最高的二叉樹。要求輸出;
(1)樹的最大加成
(2)樹的前序遍歷
最大值表示I未被邀請。
f)
f=sigma(最大值{f})
這也是樹動態規劃的壹種分類,每個節點有兩種狀態:選中和未選中。。
我把它貼在我的教程裏了。