#PD261011B. 放假通知 (notify)
放假通知 (notify)
题目描述
学校里有 个人,编号为 到 ,其中 号是校长。除校长外,每个人都恰好有一个直接上级,第 个人的直接上级是 。整个学校的上下级关系构成一棵以校长为根的树。
在时刻 ,校长得知了放假的消息。消息按如下方式传递:
- 逐个打电话: 每个已经得知消息的人,会给自己的直接下属一个接一个地打电话。同一时刻一个人只能打一个电话。
- 通话时长: 打给 的电话持续 分钟,挂断时 才算得知消息。
- 同时传递: 得知消息后,会立刻开始给自己的直接下属打电话,与其他人的通话同时进行。
每个人可以自由决定给自己的直接下属打电话的顺序,且一个人打完一个电话后会立刻打下一个。
请你为所有人安排打电话的顺序,使所有人得知消息的时刻之和最小,并输出这个最小值。校长得知消息的时刻为 ,也计入总和。
输入格式
从文件 notify.in 中读入数据。
第一行一个整数 ,表示学校的人数。
接下来 行,依次给出编号 的人的信息。每行两个整数 ,分别表示第 个人的直接上级,以及打给第 个人的电话时长。
输出格式
输出到文件 notify.out 中。
输出一行一个整数,表示所有人得知消息的时刻之和的最小值。
样例1输入
5
1 2
1 1
1 1
4 1
样例1输出
9
样例1解释
校长有三个直接下属: 号(通话 分钟)、 号(通话 分钟)和 号(通话 分钟),其中 号还有一个直接下属 号(通话 分钟)。
最优方案是校长依次打给 号、 号、 号,三人分别在时刻 得知消息。 号得知消息后立刻打给 号, 号在时刻 得知消息,总和为 。
如果校长依次打给 号、 号、 号,则总和为 。
样例2输入
8
1 6
1 3
2 7
2 1
3 2
4 9
4 2
样例2输出
88
样例3
见选手下发文件夹中的 notify3.in 与 notify3.ans。
样例4
见选手下发文件夹中的 notify4.in 与 notify4.ans。
数据范围
对于所有测试数据,保证 ,,。
本题共 个测试点,采用捆绑测试。只有通过一个子任务内的全部测试点,才能获得该子任务的全部分数;否则该子任务得 分。
| 子任务编号 | 测试点编号 | 分值 | 特殊性质 | |
|---|---|---|---|---|
| 1 | 10 | 8 | 无 | |
| 2 | 5 | A | ||
| 3 | 15 | B | ||
| 4 | C | |||
| 5 | 2000 | 无 | ||
| 6 | 40 |
特殊性质 A:每个人至多有一个直接下属,即对于 ,有 。
特殊性质 B:所有人的直接上级都是校长,即对于 ,有 。
特殊性质 C:所有 相等。
相关
在下列比赛中: