题目描述
Bob想要和Carrol玩游戏。但Carrol觉得玩游戏太无聊,就和Tuesday去写歌了。于是现在Bob来找你玩游戏。
这个游戏是这样的:给定一棵n个节点的树, 1号点为根节点,设v的父亲是f(v) 。其中每个节点有一个颜色,要么是黑色,要么是白色。不妨记第i个节点的初始颜色是ci。ci =0或1,表示黑色或白色。
在游戏开始时,Bob为每个节点选择一个目标颜色di,要求你经过若干次操作,将每个节点变成其目标颜色。你的操作是这样的:
●选定一个点u,将u,f(u),f(f(u)),…,fk-1 (u)这k个节点的颜色翻转(将白色节点变为黑色节点,将黑色节点变为白色节点)。其中k是游戏开始前确定的一个正整数。
只有u,f(u),f(f(u)),…,fk-1 (u)这k个节点均存在,你才能执行这样的操作。当然,你可以执行任意多次操作。
现在Bob要和你玩T次这样的游戏,每次你都想要知道你是否有可能完成要求,即通过若干次操作,将所有节点变成其目标颜色。
输入
●第一行仅一个数T≤10,表示这样的游戏的次数;
●接下来共有T组数据。对于每一组数据:
○第一行是两个正整数n,k,n表示树的大小,k的含义请参见题目描述。
数据满足n,k≤2×105
○接下来n-1行每行两个数u,v,表示树上有一条边(u,v) 。注意:输入
并不保证边的方向。
○接下来一行n个数c1 , c2,…,cn,表示初始颜色。
○接下来一行n个数d1 , d2,…,dn,表示目标颜色。
输出
输出包含T行,第i行对应第i次游戏的答案;
对于第i次游戏,如果你有可能完成任务,输出Yes,否则输出No 。
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
提示
【样例解释】
●在第一个例子中,第一次选择2号点操作,1,2号点被翻转;第二次选择3
号点操作,2,3号点被翻转。即达成目标状态。
●可以证明,无法将初始状态经过操作变为目标状态。
【数据范围】
对于全部测试点:T≤10, k≤n≤2×105,保证数据给出的是一棵树。
对于前 10% 的数据,n≤5;
对于前 30% 的数据,n≤20;
对于前 50% 的数据,n≤2000;
对于前 70% 的数据,n≤50000;
对于全部数据,n≤2×105