问题 5250 --划分

5250: 划分★★★★★

时间限制: 2 Sec  内存限制: 256 MB
提交: 9  解决: 5
[提交][状态][命题人:]

题目描述

牛牛有一棵  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]。

输出

输出一行一个字符串 Yes 或者 No,表示是否存在好的划分方案。
样例输入
Copy
【样例 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
样例输出
Copy
【样例 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,输入保证是一棵树。

来源

[提交][状态]