AT_2_ttpc2024_2_k.01 Abs Sum

通过率:0%

AC君温馨提醒

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

题目描述

给定一个长度为 NN 的数列 A=(A1,A2,⋯ ,AN)A=(A_1, A_2, \cdots, A_N),其中每个元素是 00、11 或 −1-1。

将数列 AA 中的 −1-1 以 00 或 11 替换,有 2q2^q 种替换方式,其中 qq 是数列中 −1-1 的数量。我们需要在所有替换方案中选出同时含有 00 和 11 的数列,并对每个数列求解如下问题,然后取其结果之和对 998244353998244353 取模。

在数列 AA 中,00 和 11 的个数分别为 α\alpha 和 β\beta。
将数列中等于 00 的元素下标按从小到大排列,记为序列 X=(X0,X1,⋯ ,Xα−1)X=(X_0, X_1, \cdots, X_{\alpha-1})。
同样,将数列中等于 11 的元素下标按从小到大排列,记为序列 Y=(Y0,Y1,⋯ ,Yβ−1)Y=(Y_0, Y_1, \cdots, Y_{\beta-1})(请注意 XX 和 YY 的下标均从 00 开始)。

请计算:

∑i=0LCM(α,β)−1∣X(i mod α)−Y(i mod β)∣\sum_{i=0}^{\mathrm{LCM}(\alpha, \beta)-1} |X_{(i \bmod \alpha)} - Y_{(i \bmod \beta)}|

其中,LCM(x,y)\mathrm{LCM}(x, y)代表xx和yy的最小公倍数,x mod yx \bmod y表示xx除以yy的余数。

输入格式

输入为一行,包含以下内容:

NN A1A_1 A2A_2 ⋯\cdots ANA_N

输出格式

输出结果对998244353998244353取模的值。

输入输出样例

  • 输入#1

    4
    1 1 -1 -1

    输出#1

    14
  • 输入#2

    3
    0 0 0

    输出#2

    0
  • 输入#3

    10
    -1 -1 0 -1 -1 1 -1 -1 -1 -1

    输出#3

    10152

说明/提示

  • 输入值均为整数。
  • 2≤N≤22502 \leq N \leq 2250
  • AiA_i 的取值为 00、11 或 −1-1(i=1,2,⋯ ,Ni=1, 2, \cdots, N)。

部分分数

如果能正确解决满足 N≤100N \leq 100 限制条件的数据集,可以获得 3030 分。

样例解释 1

对于数列 A=(1,1,0,0)A=(1, 1, 0, 0),计算得 ∣3−1∣+∣4−2∣=4|3-1| + |4-2| = 4。
对于数列 A=(1,1,0,1)A=(1, 1, 0, 1),计算得 ∣3−1∣+∣3−2∣+∣3−4∣=4|3-1| + |3-2| + |3-4| = 4。
对于数列 A=(1,1,1,0)A=(1, 1, 1, 0),计算得 ∣4−1∣+∣4−2∣+∣4−3∣=6|4-1| + |4-2| + |4-3| = 6。
因此,总和为 4+4+6=144 + 4 + 6 = 14。

样例解释 2

如果不能构造出同时包含 00 和 11 的数列,则答案为 00。

本翻译由 AI 自动生成

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

首页