CF2077E.Another Folding Strip

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

对于一个长度为 mm 的数组 bb,定义 f(b)f(b) 如下:

考虑一个 1×m1 \times m 的纸带,所有单元格初始暗度为 00。你需要通过以下操作将其转化为第 ii 个位置的暗度为 bib_i 的纸带。每次操作包含两个步骤:

  1. 在任意两个单元格之间的线上折叠纸带。你可以进行任意次折叠(包括不折叠)。
  2. 选择一个位置滴下黑色染料。染料会从顶部渗透并向下流动,使其路径上所有单元格的暗度增加 11。滴完染料后展开纸带。

令 f(b)f(b) 为达成目标配置所需的最小操作次数。可以证明总能通过有限次操作达成目标。

给定一个长度为 nn 的数组 aa,计算

∑l=1n∑r=lnf(alal+1…ar)\sum_{l=1}^n\sum_{r=l}^n f(a_l a_{l+1} \ldots a_r)

模 998 244 353998\,244\,353 的结果。

输入格式

每个测试包含多个测试用例。第一行输入测试用例数量 tt(1≤t≤1041 \le t \le 10^4)。接下来描述每个测试用例。

每个测试用例的第一行输入一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5)——数组 aa 的长度。

第二行输入 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0≤ai≤1090 \leq a_i \leq 10^9)——表示数组 aa。

保证所有测试用例的 nn 总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,输出一个整数——所求结果模 998 244 353998\,244\,353 的值。

输入输出样例

  • 输入#1

    4
    3
    0 1 0
    6
    1 0 0 1 2 1
    5
    2 1 2 4 3
    12
    76 55 12 32 11 45 9 63 88 83 32 6

    输出#1

    4
    28
    47
    7001

说明/提示

第一个测试用例中:

  • f(a1)=f(0)=0f(a_1)=f(\mathtt{0})=0
  • f(a1a2)=f(01)=1f(a_1a_2)=f(\mathtt{01})=1
  • f(a1a2a3)=f(010)=1f(a_1a_2a_3)=f(\mathtt{010})=1
  • f(a2)=f(1)=1f(a_2)=f(\mathtt{1})=1
  • f(a2a3)=f(10)=1f(a_2a_3)=f(\mathtt{10})=1
  • f(a3)=f(0)=0f(a_3)=f(\mathtt{0})=0

总和为 0+1+1+1+1+0=40+1+1+1+1+0 = 4。

第二个测试用例中,f(a1a2a3a4a5a6)=2f(a_1a_2a_3a_4a_5a_6) = 2。下图展示了一种可能的操作序列:

翻译由 DeepSeek R1 完成

输入解题思路,AI测评打分。不知道怎么写?

首页