#P17081. 开关灯
开关灯
1006. 开关灯
题目描述
小 D 很喜欢随机性。他面前有一排 n 盏灯,从左到右编号为 1, 2, …, n,第 i 盏灯的权值为 ai。一开始,所有灯都是关闭的。
小 D 随机选择一个 1 ∼ n 的排列,并按照这个排列依次打开所有灯。每打开一盏灯后,所有亮着的灯会形成若干个极大连续段。若当前共有 c 个连续段,并且这次打开的是第 i 盏灯,那么小 D 会获得 ai ⋅ c
分。小 D 想知道,最终总得分的期望是多少?答案对 998 244 353 取模。
输入格式
本题有多组测试数据。第一行输入一个正整数 T (1 ≤ T ≤ 2 × 105 ),表示测试数据组数。接下来输入 T 组测试数据。每组测试数据包含两行:第一行一个整数 n (1 ≤ n ≤ 2 × 105 )。第二行 n 个整数 a1, a2, …, an (0 ≤ ai < 998 244 353)。
保证单个测试点内所有测试数据的 n 之和不超过 2 × 106。
输出格式
输出一个整数,表示小 D 最终总得分的期望值对 998 244 353 取模后的结果。可以证明答案是一个分母不被 998 244 353 整除的有理数。若答案最简表示为 xy,你需要输出 x × y −1 mod 998 244 353,其中 y −1 表示 y
在模 998 244 353 意义下的乘法逆元。
样例输入
2
1
10
3
1 2 3
样例输出
10
665496242
提示
本题输入量较大,建议使用较快速的输入方式(如关闭流同步的cin)。
来源:官方题面 PDF(2026"钉耙编程"暑期联赛 第1场)