小蓝正在和朋友们团建,有一个游戏项目需要两人合作,两个人分别拿到 一棵大小为 n 和 m 的树,树上的每个结点上有一个正整数权值。
两个人需要从各自树的根结点 1 出发走向某个叶结点,从根到这个叶结点 的路径上经过的所有结点上的权值构成了一个正整数序列,两人的序列的最长 公共前缀即为他们的得分。给出两棵树,请计算两个人最多的得分是多少。
Time Limit | $3$ 秒/Second(s) | Memory Limit | $512$ 兆字节/Megabyte(s) |
提交总数 | $2$ | 正确数量 | $2$ | "
裁判形式 | 标准裁判/Standard Judge | 我的状态 | 尚未尝试 |
难度 | 分类标签 |
小蓝正在和朋友们团建,有一个游戏项目需要两人合作,两个人分别拿到 一棵大小为 n 和 m 的树,树上的每个结点上有一个正整数权值。
两个人需要从各自树的根结点 1 出发走向某个叶结点,从根到这个叶结点 的路径上经过的所有结点上的权值构成了一个正整数序列,两人的序列的最长 公共前缀即为他们的得分。给出两棵树,请计算两个人最多的得分是多少。
输入的第一行包含两个正整数 n, m ,用一个空格分隔。
第二行包含 n 个正整数 c1, c2, · · · , cn ,相邻整数之间使用一个空格分隔, 其中 ci 表示第一棵树结点 i 上的权值。
第三行包含 m 个正整数 d1, d2, · · · , dm ,相邻整数之间使用一个空格分隔, 其中 di 表示第二棵树结点 i 上的权值。 接下来 n − 1 行,每行包含两个正整数 ui , vi 表示第一棵树中包含一条 ui 和 vi 之间的边。
接下来 m − 1 行,每行包含两个正整数 pi , qi 表示第二棵树中包含一条 pi 和 qi 之间的边。
2 2
10 20
10 30
1 2
2 1
1
第一个样例 :
两个序列可以为 [10, 20] , [10, 30] ,最大前缀为 1 ;
第二个样例:
两个序列可以为 [10, 20, 40] , [10, 20, 30] ,最大前缀为 2 。
【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n, m ≤ 500 ; 对于所有评测用例,1 ≤ n, m ≤ 2 × 105,1 ≤ ci , di ≤ 108 ,1 ≤ ui , vi ≤ n , 1 ≤ pi , qi ≤ m ,对于任意结点,其儿子结点的权重互不相同。