算法十二
树形路线走起
算法描述
- 输入是一个具有n个结点的树
vertices
,标记为0 - n-1 - 使用
parent
变量描述该树,parent
具有n-1个元素 - 每个vertices(i+1)和parent(i)组成一个边
- 小明站在0结点上,小明每一步可以从所站结点移动到附近结点
- 小明允许移动
L
步 - 返回小明在移动过程中可以访问的最大结点数
- 过程中重复访问的结点只计算一次
参数定义
- 类名
WalkOverATree
- 方法
maxNodesVisited
- 输入参数
vector <int>, int
- 输出
int
- 方法声明
int maxNodesVisited(vector <int> parent, int L)
限制条件
-
parent
包含[0,49]个元素 -
parent[i]
的范围在[0,i]之间 - L在[1,100]之间
例子
- 输入
- parent: {0, 0}
- L
- 输出
- 2
测试实例
-
实例一
- 输入
- {0, 0}
- 3
- 输出
- 3
- 输入
-
实例二
- 输入
- {0, 1, 2, 3}
- 2
- 输出
- 3
- 输入
-
实例三
- 输入
- {0,0,0,0,2,4,2,3,1}
- 1
- 输出
- 2
- 输入
-
实例四
- 输入
- {0,0,1,2,3,2,3,1,3,0,1,8,6,8,0,5,15,0,9}
- 4
- 输出
- 5
- 输入
图解
-
实例五
- 输入
- {0,0,0,1,1,3,5,1,4,5,2,2,10,5,10,10,11,13,8,3,18,15,20,20,23,8,11,26,4}
- 26
- 输出
- 17
- 输入
-
实例六
- 输入
- {0, 0, 2, 0}
- 100
- 输出
- 5
- 输入
-
实例七
- 输入
- {0, 0, 2}
- 4
- 输出
- 4
- 输入