题目描述
为了庆祝新年,Bessie 和她的朋友们做了一棵挂满发光装饰品的巨树。Bessie 可以用遥控器控制这些装饰品的开与关。在太阳升起之前,她想按某种顺序切换其中一些装饰品的状态(同一件装饰品可以被切换多次),使得这棵树在开始和结束时都没有任何装饰品亮着。如果被点亮的装饰品集合恰好构成以某个顶点为根的子树,Bessie 就会觉得这棵树很好看。她希望自己切换装饰品的顺序满足如下性质:对于每一棵子树,都存在某个时刻,亮着的装饰品恰好构成这棵子树。此外,切换装饰品的状态是要消耗能量的,Bessie 不想浪费能量,因此她想求出自己所需要的最少切换次数。
形式化地说,给定一棵以 为根、顶点编号为 ()的树。初始时每个顶点都处于未激活状态。每次操作可以将单个顶点的状态从激活切换为未激活,或从未激活切换为激活。请输出同时满足以下两个条件的操作序列的最小可能长度:
- 定义以顶点 为根的子树为所有满足「 位于从 到 的路径上(含端点)」的顶点 构成的集合。对于树上的全部 棵子树,都必须存在某个时刻,使得当时处于激活状态的顶点集合恰好是这个子树。
- 在整个操作序列结束之后,每个顶点都处于未激活状态。
输入格式
第一行包含 。
第二行包含 (),其中 表示树中顶点 的父亲。
输出格式
输出最小可能长度。
样例
输入
3 1 1
输出
6
提示说明
【样例解释】
【数据规模与约定】
-
测试点 2-3:。
-
测试点 4-9:。
-
测试点 10-15:。
-
测试点 16-21:无附加限制。