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

    ID: 9891 远端评测题 4000ms 1024MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>集训队互测2022O2优化

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

背景

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

题目描述

给定一棵 nn 个节点的树 TT 以及树上的 mm 条 不同的 路径 Ii=(ui,vi)(ui≠vi)I_i = (u_i, v_i)(u_i\neq v_i)。具体地,IiI_i 表示树上 uiu_i 和 viv_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,分别表示树的大小和路径条数。

接下来 n−1n - 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 个子任务,分别编号为 0∼240\sim 24。注意评测子任务编号为实际子任务编号 +1+1。

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

  • 若子任务编号模 55 余 00,则 n,m≤100n, m\leq 100,记为 A1。
  • 若子任务编号模 55 余 11,则 n,m≤500n, m\leq 500,记为 B1。依赖于 A1。
  • 若子任务编号模 55 余 22,则 n,m≤1557n, m\leq 1557,记为 C1。依赖于 B1。
  • 若子任务编号模 55 余 33,则 n,m≤85500n, m\leq 85500,记为 D1。依赖于 C1。
  • 若子任务编号模 55 余 44,则 n,m≤2×105n, m\leq 2\times 10 ^ 5,记为 E1。依赖于 D1。

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

  • 若子任务编号除以 55 商 00,则 TT 是一条链,记为 A2。
  • 若子任务编号除以 55 商 11,则 TT 是一个菊花,记为 B2。
  • 若子任务编号除以 55 商 22,则所有路径端点互不相同,记为 C2。
  • 若子任务编号除以 55 商 33,则所有路径以同一点为一端,记为 D2。
  • 若子任务编号除以 55 商 44,则无特殊限制,记为 E2。依赖于 A2,B2,C2,D2。

对于 100%100\% 的数据,2≤n≤2×1052\leq n\leq 2\times 10 ^ 5,$1\leq m\leq \min(\frac {n(n - 1)} 2, 2\times 10 ^ 5)$,1≤ui,vi,xi,yi≤n1\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) 互不相同,ui≠viu_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。