#ABC454G. 子树中的众数

子树中的众数

子树中的众数

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

给定一棵有 NN 个顶点的有根树,顶点编号为 11NN。顶点 11 是根,顶点 ii 的父亲是顶点 pip_i,并且 pi<ip_i<i

每个顶点都有一种颜色:顶点 ii 的颜色为 cic_i,其中 1ciN1\le c_i\le N

对于每个 v=1,2,,Nv=1,2,\ldots,N,完成下面的问题:

fif_i 表示以顶点 vv 为根的子树中,颜色为 ii 的顶点个数。求:

  • 序列 (f1,f2,,fN)(f_1,f_2,\ldots,f_N) 中的最大值 mm
  • 满足 fi=mf_i=m 的、不超过 NN 的正整数 ii 的个数 kk

本题采用特殊的输入输出格式。

标准输入给出整数 NN,以及整数 seed,M,F\mathrm{seed},M,Fq2,q3,,qMq_2,q_3,\ldots,q_Md1,d2,,dMd_1,d_2,\ldots,d_M。按以下过程还原 p2,p3,,pNp_2,p_3,\ldots,p_Nc1,c2,,cNc_1,c_2,\ldots,c_N

首先令 state=seed\mathrm{state}=\mathrm{seed}。依次处理 i=2,3,,Ni=2,3,\ldots,N

  • iMi\le M,令 pi=qip_i=q_i
  • 否则,令 pi=(statemod(i1))+1p_i=(\mathrm{state}\bmod(i-1))+1,然后令 $\mathrm{state}=(\mathrm{state}\times1103515245+12345)\bmod 2^{31}$。

接着依次处理 i=1,2,,Ni=1,2,\ldots,N

  • iMi\le M,令 ci=dic_i=d_i
  • 否则,令 ci=(statemodF)+1c_i=(\mathrm{state}\bmod F)+1,然后令 $\mathrm{state}=(\mathrm{state}\times1103515245+12345)\bmod 2^{31}$。

这里 231=21474836482^{31}=2147483648state\mathrm{state} 是变量,计算它时需要使用 64 位整数类型。

mi,kim_i,k_i 分别表示对 v=iv=i 求得的 m,km,k。输出

$$\left(\sum_{i=1}^{N}(m_i\mathbin\oplus i)\times(k_i\mathbin\oplus i)\right)\bmod998244353,$$

其中 \oplus 表示按位异或。计算时请注意溢出。

输入格式

第一行输入四个整数:

NseedMFN\quad \mathrm{seed}\quad M\quad F

第二行输入 M1M-1 个整数:

q2q3qMq_2\quad q_3\quad \cdots\quad q_M

第三行输入 MM 个整数:

d1d2dMd_1\quad d_2\quad \cdots\quad d_M

输出格式

输出一个整数,表示

$$\left(\sum_{i=1}^{N}(m_i\mathbin\oplus i)\times(k_i\mathbin\oplus i)\right)\bmod998244353.$$

样例输入 1

4 454 4 2
1 2 2
1 2 2 3

样例输出 1

29

样例解释 1

对于 i=1i=1,有 m1=2,k1=1m_1=2,k_1=1,对应贡献为 00

对于 i=2i=2,有 m2=2,k2=1m_2=2,k_2=1,对应贡献为 00

对于 i=3i=3,有 m3=1,k3=1m_3=1,k_3=1,对应贡献为 44

对于 i=4i=4,有 m4=1,k4=1m_4=1,k_4=1,对应贡献为 2525

因此输出 0+0+4+25=290+0+4+25=29

样例输入 2

6 123 2 2
1
1 2

样例输出 2

101

样例解释 2

本样例还原出的序列为

(p2,p3,,p6)=(1,2,1,2,3),(p_2,p_3,\ldots,p_6)=(1,2,1,2,3), (c1,c2,,c6)=(1,2,2,1,2,1).(c_1,c_2,\ldots,c_6)=(1,2,2,1,2,1).

样例输入 3

15 1 4 5
1 2 3
5 3 1 3

样例输出 3

1199

样例解释 3

本样例还原出的序列为

$$(p_2,p_3,\ldots,p_{15})=(1,2,3,2,1,4,7,6,5,10,1,10,2,8),$$$$(c_1,c_2,\ldots,c_{15})=(5,3,1,3,4,2,2,2,4,2,2,5,3,5,3).$$

数据范围

  • 2N2.5×1062\le N\le2.5\times10^6
  • 1pi<i1\le p_i<i
  • 1ciN1\le c_i\le N
  • 1seed<2311\le\mathrm{seed}<2^{31}
  • 2Mmin(N,105)2\le M\le\min(N,10^5)
  • 1FN1\le F\le N
  • 1qi<i1\le q_i<i
  • 1diN1\le d_i\le N
  • 所有输入值均为整数。

根顶点的深度定义为 00

子任务编号 分值 特殊限制
1 30 还原出的树中,每个顶点的深度均不超过 22
2 还原出的颜色序列中,不同颜色的个数不超过 88
3 40 无特殊限制