1279 : DFS 序
时间限制Time Limit
1
秒Sec
内存限制Memory Limit
512
兆MB
提交次数Submitted
275 次Times
通过次数Solved
121 次Times
标准评测 Standard
从标准输入读入,结果写到标准输出。评测将输出拆成 token,与标准答案逐项比较,不按整段逐字节比对。
Read from standard input and write to standard output. The judge splits the output into tokens and compares them with the official answer; it does not compare raw bytes.
| 比对Compare | token 相同即通过。中间的空格、制表符、换行可多可少。Matching tokens pass. Extra spaces, tabs, or newlines between them are ignored. |
|---|---|
| 不同则错Differs | token 个数或内容不同即错误。23 与 2 3、02 与 2、2.0 与 2 均视为不同。A different token count or value is wrong. 23 vs 2 3, 02 vs 2, and 2.0 vs 2 all differ. |
| 输入Input | 标准输入,格式见题面。Standard input; format as in the statement. |
| 输出Output | 标准输出。Standard output. |
题目描述Description
给定一棵 \(n\) 个点的有根树,\(1\) 号点为根。每个点有一个权值 \(w_i\)。
求一个最优的 DFS 序使得 \(\sum\limits_{i=1}^n p_iw_i\) 最大。其中 \(p_i\) 表示访问第 \(i\) 个点的时刻,即第一次访问节点 \(i\) 之前访问过多少个不同的节点(包含节点 \(i\) 本身)。
输入格式Input
第一行一个正整数 \(n(1\le n \le 2\times 10^5)\)。
第二行 \(n\) 个正整数,其中第 \(i\) 个表示 \(w_i(1\le w_i \le 10^8)\)。
第三行 \(n-1\) 个正整数,其中第 \(i\) 个表示 \(i+1\) 号节点的父亲,保证取值在 \(1\sim i\) 之间。
输出格式Output
一行一个整数,表示最大的 \(\sum\limits_{i=1}^n p_iw_i\)。
样例Sample
提示Hint
按照 \((1,3,5,4,2)\) 的访问顺序可以取得最大值 \(1\times 8+2\times 3+3\times 4+4\times 6+5\times 5=75\)。
注意 \((1,3,2,4,5)\) 不是一个合法的访问顺序。
出题Author
THU