问题1168--4.组合树(tree)

1168: 4.组合树(tree)

[命题人 : ]
时间限制 : 4.000 sec  内存限制 : 512 MB

题目描述

        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 。

样例输入 Copy

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

样例输出 Copy

Yes
No

提示

【样例解释】 
●在第一个例子中,第一次选择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