AT_agc068_d.[AGC068D] Sum of Hash of Lexmin

NOI/NOI+/CTSC

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一棵以 11 为根、包含 NN 个顶点的有根树 TT,顶点编号为 11 到 NN。顶点 11 是根,对于每个 2≤i≤N2 \leq i \leq N,顶点 ii 的父节点为 PiP_i(Pi<iP_i < i)。

对于 11 到 NN 的一个排列 x=(x1,x2,⋯ ,xN)x=(x_1,x_2,\cdots,x_N),判断它是否为良好排列的方法如下:

  • 对于排列 xx,可以进行如下操作:
    • 选择排列中相邻的两个元素 u,vu,v,如果 u,vu,v 在树 TT 上存在祖先-子孙关系(无论谁是祖先谁是子孙均可),则可以交换 u,vu,v 的位置。
  • 如果经过若干次(可以为 00 次)上述操作,能够得到一个字典序严格小于初始排列的排列,则 xx 不是良好排列。否则,xx 是良好排列。

给定正整数 BB。对于排列 xx,定义 hash⁡(x)=∑1≤i≤NBi−1×xi\operatorname{hash}(x)=\sum_{1 \leq i \leq N} B^{i-1} \times x_i。

请计算所有良好排列 xx 的 hash⁡(x)\operatorname{hash}(x) 之和,并对 998244353998244353 取模后输出。

数列的字典序定义如下:设 S=(S1,S2,…,S∣S∣)S=(S_1,S_2,\ldots,S_{|S|}),T=(T1,T2,…,T∣T∣)T=(T_1,T_2,\ldots,T_{|T|}),则 SS 的字典序小于 TT 当且仅当满足以下两条之一:

  1. ∣S∣<∣T∣|S| < |T| 且 (S1,S2,…,S∣S∣)=(T1,T2,…,T∣S∣)(S_1,S_2,\ldots,S_{|S|}) = (T_1,T_2,\ldots,T_{|S|})。
  2. 存在整数 1≤i≤min⁡{∣S∣,∣T∣}1 \leq i \leq \min\lbrace |S|,|T| \rbrace,使得
    • (S1,S2,…,Si−1)=(T1,T2,…,Ti−1)(S_1,S_2,\ldots,S_{i-1}) = (T_1,T_2,\ldots,T_{i-1}),
    • Si<TiS_i < T_i。

输入格式

输入为一行,格式如下:

NN BB P2P_2 P3P_3 ⋯\cdots PNP_N

输出格式

输出答案。

输入输出样例

  • 输入#1

    3 100
    1 1

    输出#1

    50502
  • 输入#2

    5 100
    1 2 3 4

    输出#2

    504030201
  • 输入#3

    10 248730679
    1 2 1 2 5 6 1 8 1

    输出#3

    856673861
  • 输入#4

    20 480124393
    1 2 3 2 3 4 3 8 3 4 11 10 4 14 15 12 17 18 19

    输出#4

    488941820

说明/提示

数据范围

  • 2≤N≤1002 \leq N \leq 100
  • 1≤B<9982443531 \leq B < 998244353
  • 1≤Pi<i1 \leq P_i < i(2≤i≤N2 \leq i \leq N)
  • 输入的所有值均为整数

样例解释 1

例如,x=(3,1,2)x=(3,1,2) 不是良好排列。因为可以交换 3,13,1(它们在树上有祖先-子孙关系),得到 x=(1,3,2)x=(1,3,2),其字典序更小。在本样例中,良好排列为 x=(1,2,3)x=(1,2,3) 和 x=(1,3,2)x=(1,3,2) 共 22 个。因此,hash⁡((1,2,3))+hash⁡((1,3,2))=30201+20301=50502\operatorname{hash}((1,2,3))+\operatorname{hash}((1,3,2))=30201+20301=50502,输出 5050250502。

样例解释 2

在本样例中,任意两个顶点都存在祖先-子孙关系。因此,唯一的良好排列为 x=(1,2,3,4,5)x=(1,2,3,4,5)。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页