P16923 [JLCPC 2026] 水晶城堡
题目描述
$\mathit{tarjen}$ 是水晶城堡的守护者。城堡的长廊里镶嵌着一排 $n$ 颗魔法水晶,第 $i$ 颗水晶的颜色编号为 $a_i$。长廊中相邻且同色的水晶会产生共鸣,形成一个**色段**——即极大的连续相同颜色段。例如颜色序列 $[1, 1, 2, 2, 1]$ 有 $3$ 个色段:$[1, 1]$、$[2, 2]$ 和 $[1]$。
每天都有旅行者慕名前来,提出 $q$ 个问题。每个问题指定一段区间 $[l, r]$:如果把这段水晶取下来随机打乱重新排列(所有不同的颜色序列等概率出现),形成的色段数量的期望值是多少?
答案对 $998244353$ 取模。即若答案为最简分数 $\dfrac{x}{y}$,输出 $x \cdot y^{-1} \bmod 998244353$。可以证明在本题约束下 $y^{-1}$ 总是存在的。
输入格式
第一行有一个整数 $T$($1 \le T \le 10^5$),表示数据组数。接下来 $T$ 段,每段描述一组数据:
- 第一行两个整数 $n, q$($1 \le n, q \le 10^5$)表示水晶数量和询问次数。
- 第二行 $n$ 个整数 $a_1, a_2, \ldots, a_n$($1 \le a_i \le n$)表示每颗水晶的颜色编号。
- 接下来 $q$ 行,每行两个整数 $l, r$($1 \le l \le r \le n$)表示询问区间的端点。
数据保证 $\sum n\le 10^5$,$\sum q \le 10^5$。
输出格式
对于每组数据中的每个询问,输出一行一个整数,表示期望色段数量对 $998244353$ 取模的结果。
说明/提示
对于第一组样例:
第一个询问,取出的水晶颜色为 $[1, 1]$,只有一种排列,色段数为 $1$。
第二个询问,取出的水晶颜色为 $[1, 1, 2, 2]$。$6$ 种排列的色段数分别为 $2, 4, 3, 3, 4, 2$,期望值为 $\dfrac{18}{6} = 3$。