#ATagc007e. [AGC007E] Shik and Travel

[AGC007E] Shik and Travel

题目描述

在某个国家有 NN 个城市,这些城市通过 N1N-1 条道路相连。道路是双向通行的。为了方便,城市编号为 11NN,道路编号为 11N1N-1。用图论的术语来说,对于任意两个城市,恰好存在一条连接它们的简单路径。也就是说,由城市和道路构成的图是一棵树。此外,如果将 11 号城市作为这棵树的根,这棵树是一棵完全二叉树(完全二叉树指的是,除叶子节点外的每个节点恰好有两个子节点的有根树)。第 ii 条道路连接 i+1i+1 号城市和 aia_i 号城市,每次通过该道路需要支付 viv_i 的通行费(如果 vi=0v_i=0,则不需要支付通行费)。

11 号城市,有一家以鼓励员工旅游而闻名的公司。该公司有一项道路通行费补助制度,在员工旅行期间产生的大部分道路通行费由公司承担。要使旅行符合该制度的适用条件,需要满足一些限制条件,在这些条件范围内可以自由安排行程。具体如下:

  • 要适用该制度,旅行的出发点和终点都必须是 11 号城市。此外,将该国的城市和道路视为以 11 号城市为根的有根树时,若该树有 mm 个叶子节点,则旅行日程必须为 mmm+1m+1 天。必须在所有叶子节点对应的城市各住宿一次。
  • 在整个旅行过程中,必须恰好每条道路都经过两次。
  • 在旅行期间产生的道路通行费中,员工本人需要承担的金额为除去旅行第一天和最后一天外,某一天产生的通行费总额的最大值。剩余部分由公司承担。

Shick 是该公司的员工。在享受道路通行费补助制度的这次旅行中,他只关心如何使自己需要支付的通行费金额最小。请帮他安排这样的旅行路线。

输入格式

输入通过标准输入按以下格式给出。

NN a1a_1 v1v_1 a2a_2 v2v_2 \cdots aN1a_{N-1} vN1v_{N-1}

输出格式

输出在道路通行费补助制度下进行旅行时,员工本人需要承担的通行费的最小值。

样例 1

输入

7
1 1
1 1
2 1
2 1
3 1
3 1

输出

4

样例 2

输入

9
1 2
1 2
3 2
3 2
5 2
5 2
7 2
7 2

输出

6

样例 3

输入

15
1 2
1 5
3 3
4 3
4 3
6 5
5 4
5 3
6 3
3 2
11 5
11 3
13 2
13 1

输出

15

样例 4

输入

3
1 0
1 0

输出

0

说明/提示

限制条件

  • 2<N<1310722 < N < 131072
  • 对于所有 ii1aii1 \leq a_i \leq i
  • 0vi1310720 \leq v_i \leq 131072
  • viv_i 为整数
  • 给定的树为完全二叉树

样例解释 1

将城市和道路视为以 11 号城市为根的有根树时,该树有 44 个叶子节点(对应 4,5,6,74, 5, 6, 7 号城市),因此旅行日程为 4455 天。对于这 44 个城市的住宿顺序有 4!=244! = 24 种,但其中部分顺序不符合制度要求。例如,按 (4,5,6,7)(4,5,6,7)(6,7,5,4)(6,7,5,4) 的顺序访问城市时符合制度要求,但按 (5,6,7,4)(5,6,7,4) 的顺序访问时,会在行程中第 11 号城市和第 22 号城市之间的道路上经过 44 次,不符合制度要求。下图展示了这些访问顺序对应的旅行路径。 04b39e0341af562ba20ba2d49c6f2b69.jpg 在所有符合制度要求的城市访问顺序中,对应的行程在第 33 天会经过 44 条道路,通行费总额为 44,这一天的通行费总额为最大值。

样例解释 2

下图展示了一种使员工负担金额最小的旅行路径。 92271892911b34032766803fa9c9e159.jpg 需要注意的是,计算员工负担金额时,不考虑旅行第一天和最后一天产生的通行费。

由 ChatGPT 4.1 翻译