#P11338. [2024致理杯]排序

[2024致理杯]排序

题目描述

对于一个整数序列 A=(a1,a2,...,an)A=(a_1,a_2,...,a_n) ,考虑以下的递归过程:首先等概率地选取 AA 中一个值 aka_k ,将序列 AA 中所有小于 aka_k 的元素按照在 AA 中的位置依次排列为序列 A1A_1 ,将序列 AA 中所有大于 aka_k 的元素按照 AA 中的位置依次排列为序列 A2A_2 ,然后对于序列 A1A2A_1、A_2 分别重复以上过程,直至序列为空时结束递归。一次递归的时间代价表示为过程中所有序列的长度和(包括最开始的序列) ,由于递归方式不确定,记 T(A)T(A) 为对序列 AA 执行上述过程的期望时间代价。

现给定 n,mn,m ,请对于所有长度为 nn ,且满足 1aim(i=1,2...n)1\le a_i \le m (i=1,2...n) 的整数序列 AA ,求出 T(A)T(A) 的和。答案对 998244353 取模。

输入格式

输入仅一行,两个正整数 n,mn,m,分别表示序列的长度和元素的取值范围。

输出格式

输出一行一个整数,表示 T(A)T(A) 的和对 998244353998244353 取模的结果。

3 2
32
5 4
9236

数据范围

对于 20%20\% 的数据:n,m5n,m \le 5

对于 50%50\% 的数据:n,m30n,m \le 30

对于另外 20%20\% 的数据:n5,m109n \le 5, m \le 10^9

对于所有测试数据保证:1n100,1m1091\le n \le 100, 1\le m \le 10^9