luogu#P8821. [集训队互测 2022] 树链剖分

[集训队互测 2022] 树链剖分

题目背景

请注意:本题不是树链剖分模板题

题目描述

给定一棵 nn 个节点的树 TT 以及树上的 mm不同的 路径 Ii=(ui,vi)(uivi)I_i = (u_i, v_i)(u_i\neq v_i)。具体地,IiI_i 表示树上 uiu_iviv_i 之间的简单路径上所有点形成的点集。

考虑 TT 上某条路径 I=(u,v)I = (u, v),定义 $f(I) = \sum\limits_{i = 1} ^ m\sum\limits_{j = 1} ^ m [I_i\cup I = I_j\cup I]$。

对于 TT 上所有不同路径 II,求 f(I)f(I) 之和,并将答案对 998244353998244353 取模。也就是说,你需要求 $\left(\sum\limits_{u = 1} ^ n\sum\limits_{v = u} ^ n f((u, v))\right) \bmod 998244353$。

输入格式

第一行一个整数 SS,表示子任务编号。样例的子任务编号为 1-1

第二行两个整数 n,mn, m,分别表示树的大小和路径条数。

接下来 n1n - 1 行,每行两个整数 xi,yix_i, y_i 表示 TT 上的一条边。

接下来 mm 行,每行两个整数 ui,viu_i, v_i 表示第 ii 条路径 IiI_i

保证给定路径两两不同

输出格式

输出一行一个整数表示答案。

-1
3 3
1 2
2 3
1 2
2 3
1 3
32
-1
4 6
1 2
1 3
1 4
1 2
1 3
1 4
2 3
2 4
3 4
120
-1
7 7
1 2
1 3
2 4
4 5
5 6
5 7
5 7
3 1
4 7
7 1
2 6
3 6
3 5
330

提示

本题采用捆绑测试,共 2525 个子任务,分别编号为 0240\sim 24注意评测子任务编号为实际子任务编号 +1+1

子任务编号模 55 的余数将子任务按数据大小划分。

  • 若子任务编号模 5500,则 n,m100n, m\leq 100,记为 A1。
  • 若子任务编号模 5511,则 n,m500n, m\leq 500,记为 B1。依赖于 A1。
  • 若子任务编号模 5522,则 n,m1557n, m\leq 1557,记为 C1。依赖于 B1。
  • 若子任务编号模 5533,则 n,m85500n, m\leq 85500,记为 D1。依赖于 C1。
  • 若子任务编号模 5544,则 n,m2×105n, m\leq 2\times 10 ^ 5,记为 E1。依赖于 D1。

子任务编号除以 55 的商将子任务按特殊限制划分。

  • 若子任务编号除以 5500,则 TT 是一条链,记为 A2。
  • 若子任务编号除以 5511,则 TT 是一个菊花,记为 B2。
  • 若子任务编号除以 5522,则所有路径端点互不相同,记为 C2。
  • 若子任务编号除以 5533,则所有路径以同一点为一端,记为 D2。
  • 若子任务编号除以 5544,则无特殊限制,记为 E2。依赖于 A2,B2,C2,D2。

对于 100%100\% 的数据,2n2×1052\leq n\leq 2\times 10 ^ 5,$1\leq m\leq \min(\frac {n(n - 1)} 2, 2\times 10 ^ 5)$,1ui,vi,xi,yin1\leq u_i, v_i, x_i, y_i\leq n,且所有 (xi,yi)(x_i, y_i) 形成一棵树,所有 Ii=(ui,vi)I_i = (u_i, v_i) 互不相同,uiviu_i\neq v_i

各子任务分值如下表所示。

得分 A1 B1 C1 D1 E1 总和
A2 11 22 33 77 2020
B2 44 1414
C2 55 77 2222
D2 33 44 55 1818
E2 22 33 99 2626
总和 66 1212 1919 3131 3232 100100

注:洛谷评测无子任务依赖

来源:2022 年集训队互测 Round 4。

出题人:Alex_Wei。