#41454. 组合树
组合树
暂无测试数据。
Bob 想要和 Carrol 玩游戏。但 Carrol 觉得玩游戏太无聊,就和 Tuesday 去写歌了。于是现在 Bob 来找你玩游戏。
这个游戏是这样的:给定一棵 $n$ 个节点的树,$1$ 号点为根节点,设 $v$ 的父亲是 $f(v)$。其中每个节点有一个颜色,要么是黑色,要么是白色。不妨记第 $i$ 个节点的初始颜色是 $c_i$。$c_i=0$ 或 $1$,表示黑色或白色。
在游戏开始时,Bob 为每个节点选择一个目标颜色 $d_i$,要求你经过若干次操作,将每个节点变成其目标颜色。你的操作是这样的:
选定一个点 $u$,将 $u,f(u),f(f(u)),…,f^{k-1}(u)$ 这 $k$ 个节点的颜色翻转(将白色节点变为黑色节点,将黑色节点变为白色节点)。其中 $k$ 是游戏开始前确定的一个正整数。
只有 $u,f(u),f(f(u)),…,f^{k-1}(u)$ 这 $k$ 个节点均存在,你才能执行这样的操作。当然,你可以执行任意多次操作。
现在 Bob 要和你玩 $T$ 次这样的游戏,每次你都想要知道你是否有可能完成要求,即通过若干次操作,将所有节点变成其目标颜色。
输入格式
第一行仅一个数 $T\le 10$,表示这样的游戏的次数;
接下来共有 $T$ 组数据。对于每一组数据:
第一行是两个正整数 $n,k$,$n$ 表示树的大小,$k$ 的含义请参见题目描述。
数据满足 $n,k\le 2\times 10^5$
接下来 $n-1$ 行每行两个数 $u,v$,表示树上有一条边 $(u,v)$。注意:输入并不保证边的方向。
接下来一行 $n$ 个数 $c_1 , c_2,\cdots,c_n$,表示初始颜色。
接下来一行 $n$ 个数 $d_1 , d_2,\cdots,d_n$,表示目标颜色。
输出格式
输出包含 $T$ 行,第 $i$ 行对应第 $i$ 次游戏的答案;
对于第 $i$ 次游戏,如果你有可能完成任务,输出 Yes
,否则输出 No
。
数据范围
对于全部测试点:$T\le 10,k\le n\le 2\times10^5$,保证数据给出的是一棵树。
对于前 $10\%$ 的数据,$n\le5$;
对于前 $30\%$ 的数据,$n\le20$;
对于前 $50\%$ 的数据,$n\le2000$;
对于前 $70\%$ 的数据,$n\le50000$。
对于全部数据,$n \leq 2 \times 10 ^ 5$
2
3 2
1 2
2 3
0 0 0
1 0 1
3 2
1 2
2 3
0 0 0
1 1 1
Yes
No