[yLCPC2024] D. 排卡

题目背景

经过千辛万苦,扶苏终于到达了机厅。但是她很快发现机厅排起了大 b 队 ~~(不是省选的 B 队)~~。 舞萌玩家们在人多的时候经常采取排卡的方式决定谁下一个上机。因为人实在是太多了,他们在排卡的时候,便注意到了卡上的编号。 他们向扶苏提了一个问题,你能解决吗?

题目描述

扶苏有一个双端队列 $a$。这个队列与计算机科学中队列的概念类似,不同的是,这个队列既可以从队列头读取和弹出元素,也可以在队列尾部读取和弹出元素,因此被称为『双端队列』。 这个队列中有 $n$ 个数。扶苏将通过 $n$ 次操作构造一个长度为 $n$ 的序列 $b$,第 $i$($1 \leq i \leq n$)次操作会可以进行如下两个过程之一: 1. 令 $b_i$ 为 $a$ 的队列头,并在 $a$ 的头部弹出一个元素。 2. 令 $b_i$ 为 $a$ 的队列尾,并在 $a$ 的尾部弹出一个元素。 我们定义一个数对 $(i, j)$ 的得分为: $$\mathrm{score}(i,j) = i^j \bmod 998244353$$ 即 $i$ 的 $j$ 次幂对 $998244353$ 取余数的结果。特别的,在本题中我们规定 $0^0 = 0$。 现在,扶苏想用最优的策略构造 $b$ 序列,最大化如下式子的值: $$\sum_{i = 1}^{n - 1} \mathrm{score}(b_i, b_{i + 1})$$ 即 $b$ 所有相邻两项按原顺序计算的得分之和。 注意,我们仅在计算一个数对的时候将得分对 $998,244,353$ 取模,在计算求和时不再将这个和取余。

输入输出格式

输入格式


**本题单个测试点内有多组测试数据**。第一行是一个正整数,表示数据组数 $T$。对每组数据: 第一行是一个整数 $n$($2 \leq n \leq 10^3$),表示序列的长度。 第二行有 $n$ 个整数 $a_1, a_2, \dots a_n$($0 \leq a_i < 998,244,353$),按从头到尾的顺序表示队列 $a$ 里每个数字的值。 数据保证单个测试点内 $n$ 的和不超过 $10^3$。

输出格式


对每组测试数据,输出一行一个整数表示答案。

输入输出样例

输入样例 #1

2
5
5 3 1 4 2
6
6 5 1 4 2 3

输出样例 #1

1168
15655