選擇乙個結點當且僅當選擇他的父親。求選擇m
m個結點的最大價值。
看到這道題立馬想到方程。很好,o(n
3)o(
n3)。肯定會tt飛。
看看資料,嗯n≤
100n≤1
00。。。
// 設f[x][k]表示在以結點x為根的子數中選擇k個結點的最大價值、
// 那麼當這棵樹沒有子節點時,僅有f[x][1]=a[x],其它全部是inf
// 當這棵樹僅有乙個子節點時,那麼f[x][i]=f[son[x]][i-1]+a[x],不解釋
// 當這棵樹有兩個子節點時,列舉左右結點的選擇個數,取最優即可
#include
#include
#include
using
namespace std;
const
int n=
110;
int f[n]
[n],n,m,a[n]
,lson[n]
,rson[n]
;voiddp(
int x)if(
!lson[x]
)//僅有乙個結點if(
!rson[x]
)//同上
dp(lson[x]);
dp(rson[x]);
f[x][1
]=a[x]
;for
(int i=
2;i<=m;i++
)for
(int j=
0;j<=i;j++
)//列舉選擇個數
}int
main()
jzoj 3914 人品問題 樹形DP
description 網上出現了一種高科技產品 人品測試器。只要你把你的真實姓名輸入進去,系統將自動輸出你的人品指數。yzx不相信自己的人品為0。經過了許多研究後,yzx得出了乙個更為科學的人品計算方法。這種方法的理論依據是乙個非常重要的結論 人品具有遺傳性。因此,乙個人的人品完全由他的祖先決定。...
樹形dp JZOJ 3914 人品問題
給出一棵樹。乙個節點至多有兩個祖先,如果選了某個祖先,那麼它的後代必須要選乙個。每個點上有乙個權值,求出從1 11號節點取k kk個祖先的最大總權值。很明顯的樹形動態規劃,資料較小,這裡打了o n 3 o n 3 o n3 的做法。設f i j f i j f i j 為第i ii個點選了j jj個...
樹形dp Jzoj P3914 人品問題
description 網上出現了一種高科技產品 人品測試器。只要你把你的真實姓名輸入進去,系統將自動輸出你的人品指數。yzx不相信自己的人品為0。經過了許多研究後,yzx得出了乙個更為科學的人品計算方法。這種方法的理論依據是乙個非常重要的結論 人品具有遺傳性。因此,乙個人的人品完全由他的祖先決定。...