U213456 [GDOI2022 普及组] 网页浏览(有数据)

题目描述

我们在上网时,从一个网页上的链接打开另一个网页有两种方式,一个是直接替换正在浏览的页面,另一个是在新标签页中打开。如果善用这两种打开方式,是可以节省一些操作的。 今天 $\rm Zayin$ 需要浏览 $n$ 个网页,其中有且仅有一个网页是保存在本地可以点击打开的,其他 $n-1$ 个网页都是需要从某个页面的链接里打开的。因此,这 $n$ 个网页的链接关系可以用一棵 $n$ 个节点的有根树表示。 一开始,浏览器里什么标签页也没有,$\rm Zayin$ 可以点击根节点代表的网页,打开第一个标签页,接下来,$\rm Zayin$ 可以做如下的事情: - 从当前浏览的网页所含有的链接里选择一个打开,直接替换当前的网页; - 从当前浏览的网页所含有的链接里选择一个,在新标签页中打开; - 点击“返回”,当前网页返回被其替换的网页,该操作只能用于“替换打开”的网页; - 关闭当前网页。 $\rm Zayin$ 可以自行决定浏览顺序。求 $\rm Zayin$ 从空浏览器开始,到最后浏览完全部 $n$ 个网页并全部关闭回到 空浏览器的状态,最少需要多少步操作。

输入格式

第一行一个整数 $n$,表示需要浏览的网页的数量。 第二行 $n$ 个整数,第 $i$ 个整数 $f_i$ 表示第 $i$ 个网页是从哪个网页跳转过来的,如果 $f_i = −1$ 则表示该网 页是根网页,需要在初始时点击打开。

输出格式

一行,一个整数,表示最少的操作步数。

说明/提示

#### 样例解释 |步骤|操作|浏览器拥有的页面| |:-:|:-:|:-:| |$1$|点击打开 $1$ 号网页|$1$| |$2$|从 $1$ 号网页新标签页打开 $2$ 号网页|$1,2$| |$3$|从 $2$ 号网页替换打开 $3$ 号网页|$1,3$| |$4$|关闭 $3$ 号网页|$1$| |$5$|从 $1$ 号网页替换打开 $4$ 号网页|$4$| |$6$|从 $4$ 号网页替换打开 $5$ 号网页|$5$| |$7$|关闭 $5$ 号网页|无| #### 数据范围 |测试点|$n\leq$|特殊限制| |:-:|:-:|:-:| |$1\sim 3$|$7$|无| |$4$|$10^5$|$f_1=-1$,其余 $f_i=i-1$| |$5$|$10^5$|$f_1=-1$,其余 $f_i=1$| |$6\sim 7$|$10^5$|每个节点最多有 $5$ 个子节点| |$8\sim 10$|$10^5$|无|