#3953. 分治树-T4
分治树-T4
题目描述
给出两棵以节点 1 为根、共有 n 个节点的树 T₁、T₂。
请统计有多少对点对 \((a,b)\)(满足 \(1\le a<b\le n\)),使它们在两棵树上的最近公共祖先(LCA)相同。
输入格式
T
(以下内容重复 T 组)
n
(T₁ 的 n−1 条边)
x₁ y₁
x₂ y₂
⋮
x_{n−1} y_{n−1}
(T₂ 的 n−1 条边)
u₁ v₁
u₂ v₂
⋮
u_{n−1} v_{n−1}
- 第一行一个正整数 T,表示数据组数。
- 对于每组数据:
- 首行一个正整数 n(节点数)。
- 接下来 n−1 行,每行两个整数 x y,表示树 T₁ 中有一条边 (x, y)。
- 再接下来 n−1 行,每行两个整数 u v,表示树 T₂ 中有一条边 (u, v)。
- 两棵树都以 1 为根,节点编号均为 1…n。
输出格式
对于每组数据,输出一行一个整数,表示满足条件的点对数目。
7
1 2
1 3
2 4
2 5
3 6
3 7
1 2
1 4
2 5
2 3
4 6
4 7
12
数据范围与提示
测试点编号 | n | 特殊性质 |
---|---|---|
1, 2 | ≤1000 | 无 |
3, 4 | ≤199992 | 保证 T₁ 是一条链,且 1 是链的一端 |
5, 6 | ≤199993 | 在 T₁ 中,每个节点 u 的父节点是 ⌊u/2⌋ |
7, 8 | ≤200000 | 无 |
9, 10 | ≤500000 |
- 对于全部数据,\(1\le T\le 3\)。
- 建议用树形差分、哈希或 DC 分治 等方法实现 \(O(n\log n)\) 或更优复杂度。
相关
在下列比赛中: