luogu#P11424. [清华集训 2024] 颠倒歌

[清华集训 2024] 颠倒歌

题目描述

对于树 T(V,E)T(V, E)SVS ⊆ V,记 f(S,T)f(S, T) 表示 TT 的对 SS 的导出子图(即仅保留 SS 中的点和两端都在 SS 中的边得到的图)中度数小于等于 11 的点的数量。

对于两棵树 T1(V1,E1),T2(V2,E2)T_1(V_1, E_1), T_2(V_2, E_2),若 V1=V2V_1 = V_2,我们称 T1T2T_1 ≼ T_2 当且仅当对于任意 S2V2S_2 ⊆ V_2,存在 S1S_1 满足 S2S1V1S_2 ⊆ S_1 ⊆ V_1f(S1,T1)f(S2,T2)f(S_1, T_1) ≤ f(S_2, T_2)

T1,T2T_1, T_2 等价当 T1T2T_1 ≼ T_2T2T1T_2 ≼ T_1,记作 T1T2T_1 ∼ T_2。该等价关系将 nn 个点的有标号树划分成若干等价类。

问:

  1. 给定 kknn 个点的树 T1,T2,TkT_1, T_2 \dots , T_k,求满足 TTi,1ikT ≼ T_i, ∀1 ≤ i ≤ k有标号树 TT 构成的等价类数量。

  2. 给定 kknn 个点的树 T1,T2,TkT_1, T_2 \dots , T_k,求满足 TiT,1ikT_i ≼ T, ∀1 ≤ i ≤ k有标号树 TT 数量。

注意两问的计数对象不同。两问答案均对 998,244,353998, 244, 353 取模。

保证答案取模后非 00

输入格式

从标准输入读入数据。

输入第一行一个整数 pp,其中 p{0,1}p ∈ \{0, 1\}p=0p = 0 表示询问第一问,否则表示询问第二问。

接下来一行两个正整数 k,nk, n,分别表示输入树的数量以及点数。

接下来依次输入 kk 棵树,对于每棵树输入 n1n - 1 行每行两个正整数 u,vu, v 描述树中的一条边。

输出格式

输出到标准输出。

输出一行一个整数表示答案对 998,244,353998, 244, 353 取模后的结果。

0
1 4
1 2
1 3
1 4

2

1
1 4
1 2
2 3
3 4

16

提示

【样例 1 解释】

可以证明 44 个点的有标号树被划分成了 55 个等价类,所有的链在同一个等价类,而其它分别以每个点为菊花中心对应一个等价类。

可以验证链对应的等价类和该树本身所在的等价类均满足要求,而其他等价类不满足要求。

【样例 2 解释】

可以验证所有 44 个点的有标号树共 1616 个均满足要求。

【样例 3 ~ 10】

见题目目录下的 3.in ~ 10.in3.ans ~ 10.ans

【子任务】

对于所有数据,保证 p{0,1}p ∈ \{0, 1\}3n50003 ≤ n ≤ 50001k10001 ≤ k ≤ 10001u,vn1 ≤ u, v ≤ n,答案取模后不等于 00

子任务编号 pp nn kk 树形态 分数
11 {0,1}\in\{0,1\} 8\le8 4\le4 无特殊形态 1010
22 =0=0 200\le200 1\le1 菊花 44
33 无特殊形态 88
44 2\le2 99
55 40\le40 1010
66 5000\le5000 103\le10^3 1414
77 =1=1 200\le200 1\le1 77
88 无特殊形态
99 2\le2 1010
1010 40\le40
1111 5000\le5000 103\le10^3 1111

“树形态”中,“菊花”指存在一个向所有点有直接连边的点,“链”指所有点度数不超过 22