您是一位极限运动家,正挑战一片由计算机生成的、结构奇特的数字山脉。 这片山脉由 N 个山峰组成,每个山峰都有其独特的海拔高度。 您的目标是规划出一条最长的、符合“极限跳跃”规则的下山路径。 这片数字山脉的结构可以用一棵二叉树来精确描述。您规划的路径必须遵循一系列严格的规则,我们称之为一条“极限交替路径”: 路径方向 : 路线必须严格自上而下,即只能从一个山峰移动到与之直接相连的子山峰。 严格交替 : 路径上海拔的变化必须是严格的交替上升和下降。例如,一条合法的路径可以是海拔 p_1 → p_2 → p_3 → p_4 ,其海拔序列满足 p_1 < p_2 > p_3 < p_4 。无论是“先升后降”还是“先降后升”的交替模式都是允许的。 极限跳跃 : 每次移动(从一个山峰到下一个)的海拔绝对差值必须大于或等于一个给定的阈值 k 。形式化地,对于路径上任意相邻的两个山峰 A 和 B ,必须满足 |altitude(B) - altitude(A)| ≥ k 。 您的任务是找出在这片山脉中,能够规划出的最长“极限交替路径”的长度。路径的长度以其所包含的山峰数量计算。
第一行包含两个整数 N 和 K 。 N 是山峰的总数, 1 ≤ N ≤ 10000 。 K 是要求的最小海拔差 (极限跳跃阈值), 1 ≤ K ≤ 100 。 接下来的 N 行描述了山脉的结构。每行包含三个整数 X, Y, Z : X 是当前山峰的海拔。 Y 是其左侧子山峰的海拔。 Z 是其右侧子山峰的海拔。 如果某个子山峰不存在,则用 -1 表示。 所有山峰的海拔高度都在 [1, 100000] 范围内,且保证互不相同。 这 N 行的输入顺序遵循该山脉地图的先序遍历顺序。
一个整数,代表最长“极限交替路径”的长度。
6 10 20 10 -1 10 21 -1 21 -1 11 11 -1 22 22 12 -1 12 -1 -1
6
考点:树
数据规模 N ≤ 1e4 | 限制 3 秒 / 512MB | 标准输入输出
参考方向:树
树结构上的遍历(DFS 求子树信息 / BFS 求层序),多数树题是「后序遍历 + 回溯」。
思路框架(树 通法 · 非本题专属)
实现要点:递归深度可能到 1e5,注意递归爆栈;必要时改迭代或调整递归深度。
复杂度:时间 O(n) | 空间 O(n)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1
6 10 / 20 10 -1 / 10 21 -1 / 21 -1 11 / 11 -1 22 / 22 12 -1 / 12 -1 -16解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2025年秋招-华为-10月29号开发岗。