#CF1603C. 极端扩展

极端扩展

极端扩展

  • 时间限制:2 秒
  • 内存限制:256 MiB

题目描述

对于一个正整数数组 bb,定义一次操作为:选择一个下标 ii,把 bib_i 替换为两个正整数 x,yx,y,其中 x+y=bix+y=b_i。

数组的极端值定义为:把数组变成非递减数组所需的最少操作次数。可以证明任意正整数数组都能通过有限次操作变为非递减。

给定数组 aa,求它所有非空连续子数组的极端值之和。相同内容的子数组如果出现在不同位置,也要分别计数。答案对 998244353998244353 取模。

输入格式

第一行包含一个整数 tt,表示测试组数。

每组测试的第一行包含一个整数 nn。

第二行包含 nn 个整数 a1,a2,…,ana_1,a_2,\ldots,a_n。

输出格式

对每组测试输出一个整数,表示所有非空连续子数组的极端值之和对 998244353998244353 取模的结果。

样例输入 1

1
3
5 4 3

样例输出 1

5

数据范围

1≤t≤100001\le t\le10000,1≤n≤1000001\le n\le100000,1≤ai≤1000001\le a_i\le100000;所有测试组的 nn 之和不超过 100000100000。

子任务编号 分值 特殊限制
1 20 每组 n≤8n\le8,且 ai≤8a_i\le8
2 40 每组 n≤500n\le500
3 无特殊限制