#MONF. 倒影之树
倒影之树
题目背景

噜噜:SudoXue 别宅在家里了!粗来探险!
在星空草原的最深处,噜噜和 SudoXue 发现了一棵神秘的 “倒影之树”。 沿着任意一条 叶 根 的路径读出节点字符,会得到一段咒文;把两段咒文首尾相接地比较,又会出现奇妙的对称现象。为了研究这种对称之美,噜噜想计算一个看似繁杂却充满魅力的量。
题目描述
给定一棵以 号节点为根 的有根树,共 个节点(编号 )。
-
每个节点 带有一个字符值 。 输入时 以整数形式给出,满足 。 (可把它看成
ASCII
码,也可只把它当作 进制的一个数字。) -
对任意节点 ,定义串
$$ S_v = c_v\,c_{\operatorname{parent}(v)}\,c_{\operatorname{parent}(\operatorname{parent}(v))}\,\dots c_1, $$即从 一路走到根时遇到的字符依次拼成的串。
-
对任意不同节点 ,记
- :串 的最长公共前缀长度;
- :串 的最长公共后缀长度。
求
$$ \displaystyle \sum_{1\le u<v\le n} \operatorname{lcp}(u,v)\times\operatorname{lcs}(u,v) \pmod{998244353}, $$并输出结果。
输入格式
第一行一个整数 。
第二行给出 个整数 ,其中 是节点 的父节点编号,保证 。
第三行给出 个整数 ,中间用空格分隔,表示各节点的字符值,满足 。
输出格式
输出一行一个整数,表示所求答案对 取模后的值。
样例
5
1 1 2 2
97 98 97 98 97
5
数据规模与约定
子任务 | 分数占比 | 约束 |
---|---|---|
给出的树是一条链并且 号点是链的一个端点。 | ||
保证点权随机均匀分布。