給定一棵樹,樹根為 1,每個(gè)點(diǎn)的點(diǎn)權(quán)為 Vi 。
你需要找出若干個(gè)點(diǎn) Pi,使得:
1. 每兩個(gè)點(diǎn) Px Py 互不相鄰;
2. 每兩個(gè)點(diǎn) Px Py 與樹根的距離互不相同;
3. 找出的點(diǎn)的點(diǎn)權(quán)之和盡可能大。
請輸出找到的這些點(diǎn)的點(diǎn)權(quán)和的最大值。
輸入的第一行包含一個(gè)整數(shù) n 。
第二行包含 n ? 1 個(gè)整數(shù) Fi ,相鄰整數(shù)之間使用一個(gè)空格分隔,分別表示 第 2 至 n 個(gè)結(jié)點(diǎn)的父結(jié)點(diǎn)編號。
第三行包含 n 個(gè)整數(shù) Vi,相鄰整數(shù)之間使用一個(gè)空格分隔,分別表示每個(gè)結(jié)點(diǎn)的點(diǎn)權(quán)。
5 1 2 3 2 2 1 9 3 5
11
對于40%的評測用例,n ≤ 5000 ;
對于所有評測用例,1 ≤ n ≤ 2 × 105,1 ≤ Fi < i,1 ≤ Vi ≤ 104 。
1. 對于編程題目,不能使用諸如繪圖、硬件操作或與操作系統(tǒng)相關(guān)的 API。
2. 所有依賴的模塊(如 math)必須明確地在源文件中 import。
3. 只能使用 python 自帶的模塊,使用 pip 等安裝的擴(kuò)展模塊無法使用。
4. 提交時(shí),注意選擇使用Python語言。
比賽結(jié)束依舊可以訓(xùn)練,請見題集2022年第十三屆藍(lán)橋杯大賽軟件類省賽Python大學(xué)B組真題