A7321 | 小午的家族谱
时间限制1s
内存限制128MB
通过 / 提交0/0
题目描述
小午在整理家族谱。家族中有 $n$ 个人,编号为 $1$ 到 $n$。其中,午枫是编号 $1$,小午是编号 $n$。
对于每个人 $i$($2 \le i \le n$),我们知道他的父亲是 $p_i$,并且满足 $p_i < i$(即父亲的编号一定小于自己的编号)。这意味着编号 $1$ 是家族的祖先(他没有父亲)。
小午想知道,他和午枫之间隔了多少代?即从小午开始,向上追溯到午枫,需要经过几代人。
请你帮助小午计算这个代际距离。
对于每个人 $i$($2 \le i \le n$),我们知道他的父亲是 $p_i$,并且满足 $p_i < i$(即父亲的编号一定小于自己的编号)。这意味着编号 $1$ 是家族的祖先(他没有父亲)。
小午想知道,他和午枫之间隔了多少代?即从小午开始,向上追溯到午枫,需要经过几代人。
请你帮助小午计算这个代际距离。
输入格式
第一行一个整数 $n$,表示家族中的人数。
第二行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$,表示第 $i$ 个人的父亲是 $p_i$。
第二行包含 $n-1$ 个整数 $p_2, p_3, \dots, p_n$,表示第 $i$ 个人的父亲是 $p_i$。
输出格式
输出一个整数,表示午枫(编号 $1$)和小午(编号 $n$)之间隔的代数。
输入输出样例
输入 #1
3 1 2
输出 #1
2
输入 #2
10 1 2 3 4 5 6 7 8 9
输出 #2
9
样例 #1 解释
家族关系:第 $2$ 个人的父亲是 $1$(午枫),第 $3$ 个人的父亲是 $2$。所以午枫是第 $2$ 个人的父亲,第 $3$ 个人的祖父。因此,午枫(编号 $1$)和小午(编号 $3$)之间隔了 $2$ 代(午枫 → 第 $2$ 个人 → 小午)。
数据范围
对于 $100\%$ 的测试数据,满足:$2 \le n \le 50, 1 \le p_i \le i-1$,保证 $p_i < i$ 。
C++ 编辑器
输入
输出
可保存默认模板;新题优先使用已保存模板。
当前快捷键仅展示,暂不支持修改。
- 撤销
Ctrl / ⌘ + Z - 重做
Ctrl / ⌘ + Y - 查找
Ctrl / ⌘ + F - 全选
Ctrl / ⌘ + A - 复制
Ctrl / ⌘ + C - 剪切
Ctrl / ⌘ + X - 粘贴
Ctrl / ⌘ + V - 自动排版
工具栏排版按钮 - 草稿保存
编辑时自动保存到本机
历史
提交记录
状态说明时间源码
AI
作答助手
你好,我是作答助手。可以问思路、复杂度、样例含义或代码报错原因;不会直接给出完整 AC 代码。
确定要清空代码吗?