#P17268. [ICPC 2017 Urumqi R] Lowest Common

    ID: 19658 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度提高 上传者: 标签>2017树形 DP最近公共祖先 LCAICPC

[ICPC 2017 Urumqi R] Lowest Common

题目描述

在图论中,有根树 TT 中两个节点 vv 和 ww 的 最近公共祖先 (LCA) 是以 vv 和 ww 为后代的最深节点。此处我们定义每个节点是自身的后代。TT 中两个节点的 LCA 是它们离根最远的公共祖先。

但是,如果是一棵无根树呢?

在本题中,你得到一棵具有 nn 个节点(编号从 11 到 nn)的无根树 TT,以及若干对节点 (vi,wi)(v_i, w_i)。

对于 TT 的每个节点 xx,考虑以 xx 为根得到的树(成为一棵有根树);计算求和 ∑iLCA(vi,wi)\sum_{i} LCA(v_i, w_i)。

输入格式

输入包含多组测试数据,第一行包含一个整数 tt (1≤t≤281 \le t \le 28),表示测试数据的组数。

对于每组测试数据,第一行包含两个整数 nn 和 qq (1≤n,q≤1000001 \le n, q \le 100000)。接下来的 n−1n - 1 行,每行包含两个整数 vv 和 ww (1≤v,w≤n1 \le v, w \le n),描述一条边。随后的 qq 行包含 qq 对节点 (vi,wi)(v_i, w_i),描述如上 (1≤vi,wi≤n1 \le v_i, w_i \le n)。

输入中所有 nn 的总和与所有 qq 的总和均小于 10000001000000。

输出格式

对于每组测试数据,输出一行 nn 个整数。

第 ii 个整数对应以第 ii 个节点为根时 ∑iLCA(vi,wi)\sum_{i} LCA(v_i, w_i) 的值。

2
4 3
1 2
1 3
1 4
2 3
3 4
2 4
4 1
1 2
2 3
3 4
1 4
3 5 7 9  
1 2 3 4

提示

翻译由 DeepSeek V4 Pro 完成