牛牛有一棵 n 个节点的有根树,节点编号为 1 到 n,根节点为 1。节点 i 上写有数 字 a[i] 。
我们称一条直链为一条 u 到 v 的路径,其中 u 是 v 的祖先或 u = v(注意:这里的 直链和链的定义不同)。
牛牛想要将这棵树划分成若干直链,满足每个节点恰好属于一条直链,如果对于划分出的每条直链,将该链上的点上写的数字任意排列,最后的结果满足对于任意节点 i,节点 i 上写的数字为 b[i],那我们就称这种划分方案是好的。 你需要回答牛牛是否存在好的划分方案。
牛牛有一棵 n 个节点的有根树,节点编号为 1 到 n,根节点为 1。节点 i 上写有数 字 a[i] 。
我们称一条直链为一条 u 到 v 的路径,其中 u 是 v 的祖先或 u = v(注意:这里的 直链和链的定义不同)。
牛牛想要将这棵树划分成若干直链,满足每个节点恰好属于一条直链,如果对于划分出的每条直链,将该链上的点上写的数字任意排列,最后的结果满足对于任意节点 i,节点 i 上写的数字为 b[i],那我们就称这种划分方案是好的。 你需要回答牛牛是否存在好的划分方案。
本题有多组数据。第一行一个整数 m T,表示数据组数。
每组数据格式如下: 第一行一个整数 n,表示树的节点数量。
接下来 n − 1行,第 i 行两个整数 x[i], y[i],表示树中存在一条边 (x[i], y[i])。
接下来一行,n个整数,a[1], a[2], … , a[n] 。
接下来一行,n个整数,b[1], b[2], … , b[n]。
【样例 1 输入】 2 6 1 2 1 3 2 4 3 5 3 6 1 2 3 4 5 6 1 4 5 2 3 6 6 6 4 4 2 3 1 2 1 5 3 6 9 8 8 10 10 8 6 1 3 10 1
【样例 1 输出】 Yes No
对于 10% 的数据,n ≤ 8。
对于 30% 的数据,n ≤ 18。
对于 50% 的数据,n ≤ 100。
对于 60% 的数据,T ≤ 5, n ≤ 1000。
对于另外 20% 的数据, a[1], a[2], … , a[n]互不相同,b[1], b[2], … , b[n] 互不相同。
对于 90% 的数据,∑n ≤ 1e5 。
对于 100% 的数据,1 ≤ T ≤ 1e3,1 ≤ n ≤ 1e5,∑n ≤ 1e6,1 ≤ x[i], y[i] ≤ n,1 ≤ a[i], b[i] ≤ 1e6,输入保证是一棵树。