CF429A.Xor-tree
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Iahub 最近发明了一种名为 xor-tree(异或树)的新型树。他随后为孩子们设计了一个使用 xor-tree 的游戏。
游戏在一棵有 n 个节点的树上进行,节点编号为 1 到 n。每个节点 i 有一个初始值 initi,为 0 或 1。树的根节点为 1。
在游戏过程中,可以执行任意次(也可以是零次)操作。唯一可执行的操作是 选择一个节点 x:
- 节点 x 的值翻转(0→1,1→0)
- x 的子节点值不变
- x 的孙子节点值翻转
- x 的曾孙节点值不变
- ...以此类推,按深度交替
游戏的目标是让每个节点 i 的值变为目标值 goali(也是 0 或 1)。你需要使用 最少 的操作次数达到目标。
输入格式
第一行包含一个整数 n(1≤n≤105)。
接下来 n−1 行,每行包含两个整数 ui,vi(1≤ui,vi≤n,ui=vi),表示节点 ui 和 vi 之间有一条边。
下一行包含 n 个整数,第 i 个数表示 initi(0 或 1)。
再下一行包含 n 个整数,第 i 个数表示 goali(0 或 1)。
输出格式
第一行输出一个整数 cnt,表示最少的操作次数。
接下来的 cnt 行,每行输出一个整数 xi,表示你选择的节点。
输入输出样例
输入#1
10 2 1 3 1 4 2 5 1 6 2 7 5 8 6 9 8 10 5 1 0 1 1 0 1 0 1 0 1 1 0 1 0 0 1 1 1 0 1
输出#1
2 4 7
说明/提示
数据范围
对于 100% 的数据,1≤n≤105。