CF2199H.Sum of MEX

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

一个非负整数序列 [s1,s2,…,sn][s_1, s_2, \dots, s_n] 的 MEX(Minimum EXcluded number)定义为这个序列中没有出现的最小非负整数。

给定一个数组 [a1,a2,…,an][a_1, a_2, \dots, a_n],其中每个元素都是从 −1-1 到 nn 的整数。对于每个 ii 从 11 到 nn,需要计算 f([a1,a2,…,ai])f([a_1, a_2, \dots, a_i]),其中 f(s)f(s) 对于数组 ss 定义如下:

  • 考虑所有可以通过将 ss 中等于 −1-1 的元素替换为 00 到 nn 之间的整数得到的不同数组 s′s';
  • f(s)f(s) 为所有这些数组 s′s' 的 MEX 值之和。

输入格式

第一行包含一个整数 nn(1≤n≤2⋅1051 \le n \le 2 \cdot 10^5)。

第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \dots, a_n(−1≤ai≤n-1 \le a_i \le n)。

额外输入约束:数组 aa 中等于 −1-1 的元素个数不超过 300300。

输出格式

对于每个 ii 从 11 到 nn,输出一个整数——f([a1,a2,…,ai])f([a_1, a_2, \dots, a_i]),结果需对 998244353998244353 取模。

输入输出样例

  • 输入#1

    5
    -1 1 -1 3 -1

    输出#1

    1 2 24 26 248

说明/提示

以第一个示例中的 i=3i=3 为例。我们需要计算 f([−1,1,−1])f([-1, 1, -1])。可以通过将每个 −1-1 替换为 00 到 55 的整数,共得到 3636 个不同的数组。其中 2525 个数组(不包含 00 的)MEX 都为 00。来看剩下的 1111 个数组:

  • 数组 [0,1,0][0, 1, 0] 的 MEX 为 22;
  • 数组 [0,1,1][0, 1, 1] 的 MEX 为 22;
  • 数组 [0,1,2][0, 1, 2] 的 MEX 为 33;
  • 数组 [0,1,3][0, 1, 3] 的 MEX 为 22;
  • 数组 [0,1,4][0, 1, 4] 的 MEX 为 22;
  • 数组 [0,1,5][0, 1, 5] 的 MEX 为 22;
  • 数组 [1,1,0][1, 1, 0] 的 MEX 为 22;
  • 数组 [2,1,0][2, 1, 0] 的 MEX 为 33;
  • 数组 [3,1,0][3, 1, 0] 的 MEX 为 22;
  • 数组 [4,1,0][4, 1, 0] 的 MEX 为 22;
  • 数组 [5,1,0][5, 1, 0] 的 MEX 为 22。

这些值的和为 2424。

如果我们考虑 i=4i=4,则需要在上述每个数组末尾添加一个 33。这样会使其中两个数组的 MEX 增加 22,因此 i=4i=4 时的答案为 2626。

由 ChatGPT 5 翻译

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

首页