爱丽丝正在森林中布置她的人偶阵列。她将 n 个人偶通过丝线连接成了一棵以人偶 1 为根的树。每个人偶 i 都有一个初始状态 init_i ∈ \0, 1 ,而爱丽丝希望通过魔法将它们全部转变为目标状态 goal_i ∈ \0, 1 。 爱丽丝可以对任意一个人偶 u 施加一次“波及魔法”。该魔法的效果如下: 翻转人偶 u 及其子树中所有与 u 距离为偶数( 0, 2, 4, ... )的人偶的状态。所谓翻转,即 0 变为 1 , 1 变为 0 。 请计算爱丽丝最少需要施加多少次魔法,才能使所有人偶都达到目标状态。
第一行包含一个整数 n ( 1 ≤ n ≤ 10^5 ),表示人偶的总数。 接下来的 n-1 行,每行包含两个整数 u_i 和 v_i ( 1 ≤ u_i, v_i ≤ n; u_i ≠ v_i ),表示人偶 u_i 与 v_i 之间有一条丝线连接。输入保证这些丝线构成一棵合法的树。 接下来的第 n+1 行包含 n 个整数,第 i 个整数表示人偶 i 的初始状态 init_i ( 0 或 1 )。 接下来的第 n+2 行包含 n 个整数,第 i 个整数表示人偶 i 的目标状态 goal_i ( 0 或 1 )。
输出一个整数,表示最少需要的操作次数。
5 1 2 2 3 4 5 3 4 0 0 0 0 0 1 1 1 1 1
2
考点:树
数据规模 n ≤ 1e5 | 限制 1 秒 / 256MB | 标准输入输出
参考方向:树
树结构上的遍历(DFS 求子树信息 / BFS 求层序),多数树题是「后序遍历 + 回溯」。
思路框架(树 通法 · 非本题专属)
实现要点:递归深度可能到 1e5,注意递归爆栈;必要时改迭代或调整递归深度。
复杂度:时间 O(n) | 空间 O(n)
该范式的通法易错点
对照本题
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。
样例 1:输入 5 / 1 2 / 2 3 / 4 5 / 3 4 / 0 0 0 0 0 / 1 1 1 1 1 → 输出 2
在样例中,树的结构为一条路径 1-2-3-4-5 。
1 0 1 0 1。1 1 1 1 1。总共进行了 2 次操作,满足所有目标状态。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2026年-华为-04月15号开发岗。