人品问题
Description
網上出現了一種高科技產品——人品測試器。只要你把你的真實姓名輸入進去,系統將自動輸出你的人品指數。yzx不相信自己的人品為0。經過了許多研究后,yzx得出了一個更為科學的人品計算方法。這種方法的理論依據是一個非常重要的結論:人品具有遺傳性。因此,一個人的人品完全由他的祖先決定。yzx提出的人品計算方法相當簡單,只需要將測試對象的k個祖先的人品指數(可能為負數)加起來即可。選擇哪k個祖先可以由測試者自己決定,但必須要滿足這個要求:如果除自己的父母之外的某個祖先被選了,那么他的下一代必需要選(不允許跳過某一代選擇更遠的祖先,否則將失去遺傳的意義)。
非常不幸的是,yzx測試了若干次,他的人品值仍然不能為一個正數?,F在yzx需要你幫助他找到選擇祖先的最優方案,使得他的人品值最大。
Input
第一行是兩個用空格隔開的正整數n和k,其中n代表yzx已知的家譜中共有多少人(包括yzx本身在內),k的意義參見問題描述。
第二行有n-1個用空格隔開的整數(可能為負),這些數的絕對值在2^15以內。其中,第i個數表示編號為i+1的人的人品值。我們規定,編號為1的人是yzx。
接下來n行每行有兩個用空格隔開的數,其中第i行的兩個數分別表示第i個人的父親和母親的編號。如果某個人的父親或母親不在這個家譜內,則在表示他的父親或母親的編號時用0代替。
除yzx以外的所有人都是yzx的祖先,他們都會作為父親或母親被描述到。每個人都不可能同時作為多個人的父親或者是母親。
Output
一個整數,表示yzx能夠得到的最大人品值。
Sample Input
6 3
-2 3 -2 3 -1
2 3
4 5
0 6
0 0
0 0
0 0
Sample Output
4
樣例說明下圖顯示了輸入樣例所描述的家譜圖。括號里的數表示的是該人的人品值。
顯然,選擇祖先2、3、5能使yzx的人品值達到最大。這個最大值為4,表示yzx能夠得到的最大人品值。
Data Constraint
50%的數據,n<=10。
100%的數據,n<=100。
.
.
.
.
.
.
分析
樹形DP
.
.
.
.
.
程序:
轉載于:https://www.cnblogs.com/YYC-0304/p/10458946.html
總結