QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 256 MB 満点: 100

#5454. 子树激活

統計

为了庆祝新年,Bessie 和她的朋友们建造了一棵挂满发光装饰品的巨型树。Bessie 可以通过遥控器开关这些装饰品。在日出之前,她想要按某种顺序切换一些装饰品的状态(同一个装饰品可能被切换多次),使得树在操作开始和结束时所有装饰品都处于关闭状态。Bessie 认为,如果当前亮起的装饰品集合恰好是某个顶点对应的子树,那么这棵树看起来会很酷。她希望切换装饰品的顺序满足以下性质:对于每一棵子树,在某个时间点,亮起的装饰品集合恰好就是该子树中的所有顶点。此外,开关装饰品需要消耗能量,Bessie 不想浪费能量,因此她想找到她能执行的最少切换次数。

形式化地说,给定一棵以 $1$ 为根的树,顶点编号为 $1\dots N$ ($2\le N\le 2\cdot 10^5$)。每个顶点初始时都是关闭的。在一次操作中,你可以将单个顶点的状态从关闭切换为开启,或从开启切换为关闭。输出满足以下两个条件的序列的最小可能长度:

  • 定义以顶点 $r$ 为根的子树包含所有满足 $r$ 在从 $1$ 到 $v$ 的路径上(包含 $1$ 和 $v$)的顶点 $v$。对于树中的每一棵子树,必须存在一个时刻,使得当前亮起的顶点集合恰好是该子树中的所有顶点。
  • 在整个操作序列结束后,所有顶点都处于关闭状态。

输入格式

第一行包含 $N$。

第二行包含 $p_2 \dots p_N$ ($1\le p_i

输出格式

输出最小可能的长度。

样例

输入格式 1

3
1 1

输出格式 1

6

说明

这里有三棵子树,分别对应 $\{1,2,3\}$,$\{2\}$ 和 $\{3\}$。以下是最小可能长度的操作序列之一:

activate 2
(activated vertices form the subtree rooted at 2)
activate 1
activate 3
(activated vertices form the subtree rooted at 1)
deactivate 1
deactivate 2
(activated vertices form the subtree rooted at 3)
deactivate 3

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.