CF429A.Xor-tree

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Iahub 最近发明了一种名为 xor-tree(异或树)的新型树。他随后为孩子们设计了一个使用 xor-tree 的游戏。

游戏在一棵有 nn 个节点的树上进行,节点编号为 11nn。每个节点 ii 有一个初始值 initi\textit{init}_i,为 0011。树的根节点为 11

在游戏过程中,可以执行任意次(也可以是零次)操作。唯一可执行的操作是 选择一个节点 xx

  • 节点 xx 的值翻转(010 \to 1101 \to 0
  • xx 的子节点值不变
  • xx 的孙子节点值翻转
  • xx 的曾孙节点值不变
  • ...以此类推,按深度交替

游戏的目标是让每个节点 ii 的值变为目标值 goali\textit{goal}_i(也是 0011)。你需要使用 最少 的操作次数达到目标。

输入格式

第一行包含一个整数 nn1n1051 \le n \le 10^5)。

接下来 n1n-1 行,每行包含两个整数 ui,viu_i, v_i1ui,vin1 \le u_i, v_i \le nuiviu_i \ne v_i),表示节点 uiu_iviv_i 之间有一条边。

下一行包含 nn 个整数,第 ii 个数表示 initi\textit{init}_i0011)。

再下一行包含 nn 个整数,第 ii 个数表示 goali\textit{goal}_i0011)。

输出格式

第一行输出一个整数 cnt\textit{cnt},表示最少的操作次数。

接下来的 cnt\textit{cnt} 行,每行输出一个整数 xix_i,表示你选择的节点。

输入输出样例

  • 输入#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%100\% 的数据,1n1051 \le n \le 10^5

首页