CF2199H.Sum of MEX
提高+/省选-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
一个非负整数序列 [s1,s2,…,sn] 的 MEX(Minimum EXcluded number)定义为这个序列中没有出现的最小非负整数。
给定一个数组 [a1,a2,…,an],其中每个元素都是从 −1 到 n 的整数。对于每个 i 从 1 到 n,需要计算 f([a1,a2,…,ai]),其中 f(s) 对于数组 s 定义如下:
- 考虑所有可以通过将 s 中等于 −1 的元素替换为 0 到 n 之间的整数得到的不同数组 s′;
- f(s) 为所有这些数组 s′ 的 MEX 值之和。
输入格式
第一行包含一个整数 n(1≤n≤2⋅105)。
第二行包含 n 个整数 a1,a2,…,an(−1≤ai≤n)。
额外输入约束:数组 a 中等于 −1 的元素个数不超过 300。
输出格式
对于每个 i 从 1 到 n,输出一个整数——f([a1,a2,…,ai]),结果需对 998244353 取模。
输入输出样例
输入#1
5 -1 1 -1 3 -1
输出#1
1 2 24 26 248
说明/提示
以第一个示例中的 i=3 为例。我们需要计算 f([−1,1,−1])。可以通过将每个 −1 替换为 0 到 5 的整数,共得到 36 个不同的数组。其中 25 个数组(不包含 0 的)MEX 都为 0。来看剩下的 11 个数组:
- 数组 [0,1,0] 的 MEX 为 2;
- 数组 [0,1,1] 的 MEX 为 2;
- 数组 [0,1,2] 的 MEX 为 3;
- 数组 [0,1,3] 的 MEX 为 2;
- 数组 [0,1,4] 的 MEX 为 2;
- 数组 [0,1,5] 的 MEX 为 2;
- 数组 [1,1,0] 的 MEX 为 2;
- 数组 [2,1,0] 的 MEX 为 3;
- 数组 [3,1,0] 的 MEX 为 2;
- 数组 [4,1,0] 的 MEX 为 2;
- 数组 [5,1,0] 的 MEX 为 2。
这些值的和为 24。
如果我们考虑 i=4,则需要在上述每个数组末尾添加一个 3。这样会使其中两个数组的 MEX 增加 2,因此 i=4 时的答案为 26。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?