博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 429 A. Xor-tree
阅读量:7288 次
发布时间:2019-06-30

本文共 2176 字,大约阅读时间需要 7 分钟。

下来的第一次相遇是在不翻盖的同一节点,递归可以是....

A. Xor-tree
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Iahub is very proud of his recent discovery, propagating trees. Right now, he invented a new tree, called xor-tree. After this new revolutionary discovery, he invented a game for kids which uses xor-trees.

The game is played on a tree having n nodes, numbered from 1 to n. Each node i has an initial value initi, which is either 0 or 1. The root of the tree is node 1.

One can perform several (possibly, zero) operations on the tree during the game. The only available type of operation is to pick a nodex. Right after someone has picked node x, the value of node x flips, the values of sons of x remain the same, the values of sons of sons of x flips, the values of sons of sons of sons of x remain the same and so on.

The goal of the game is to get each node i to have value goali, which can also be only 0 or 1. You need to reach the goal of the game by using minimum number of operations.

Input

The first line contains an integer n (1 ≤ n ≤ 105). Each of the next n - 1 lines contains two integers ui and vi (1 ≤ ui, vi ≤ nui ≠ vi) meaning there is an edge between nodes ui and vi.

The next line contains n integer numbers, the i-th of them corresponds to initi (initi is either 0 or 1). The following line also contains ninteger numbers, the i-th number corresponds to goali (goali is either 0 or 1).

Output

In the first line output an integer number cnt, representing the minimal number of operations you perform. Each of the next cnt lines should contain an integer xi, representing that you pick a node xi.

Sample test(s)
input
102 13 14 25 16 27 58 69 810 51 0 1 1 0 1 0 1 0 11 0 1 0 0 1 1 1 0 1
output
247

#include 
#include
#include
#include
#include
using namespace std;int n,init[110000],goal[110000];vector
g[110000],ans;void dfs(int u,int fa,int c1,int c2){ if(c1) init[u]^=1; if(init[u]!=goal[u]) { c1^=1; ans.push_back(u); } for(int i=0;i

版权声明:本文博客原创文章。博客,未经同意,不得转载。

你可能感兴趣的文章
浅谈个人安全意识
查看>>
基于底层事件的录制回放实现
查看>>
ethos从入门到精通-4.1映泰主板bios设置
查看>>
js 去除字符串空白符
查看>>
我的友情链接
查看>>
UC浏览器QQ浏览器欧朋浏览器使用体会
查看>>
Tcmalloc优化Nginx内存管理
查看>>
Spring那些不得不知的细节
查看>>
java获取本机ip,mac,os名称,版本等
查看>>
P2077 红绿灯
查看>>
我的友情链接
查看>>
jsp中的回车事件
查看>>
Linux php 扩展安装 mongo ,redis ,soap,imap,pdo_mysql,o
查看>>
Tee(Linux命令)
查看>>
android.widget.Spinner
查看>>
LAMP下tomcat使用命令
查看>>
ipvsadm 命令积累
查看>>
go的time
查看>>
SQL语句大全
查看>>
路由器怎么设置映射?
查看>>