CF2030E.MEXimize the Score

提高+/省选-

通过率:0%

AC君温馨提醒

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

题目描述

假设我们将数组 bb 的元素划分为任意数量 kk 个非空多重集 S1,S2,…,SkS_1, S_2, \ldots, S_k,其中 kk 是任意正整数。定义 bb 的得分为所有可能划分下 MEX⁡(S1)+MEX⁡(S2)+…+MEX⁡(Sk)\operatorname{MEX}(S_1) + \operatorname{MEX}(S_2) + \ldots + \operatorname{MEX}(S_k) 的最大值。

Envy 给你一个长度为 nn 的数组 aa。由于他知道你计算 aa 的得分太容易了,因此他要求你计算 aa 的所有 2n−12^n - 1 个非空子序列的得分之和。由于答案可能很大,请你输出其对 998 244 353998\,244\,353 取模的结果。

MEX⁡\operatorname{MEX}(Minimum EXcluded number)是指在一组整数 c1,c2,…,ckc_1, c_2, \ldots, c_k 中未出现的最小非负整数。例如,MEX⁡([0,1,2,2])=3\operatorname{MEX}([0,1,2,2]) = 3,MEX⁡([1,2,2])=0\operatorname{MEX}([1,2,2]) = 0。

一个序列 xx 是序列 yy 的子序列,如果 xx 可以通过从 yy 中删除若干(可能为零或全部)元素得到。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 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<n0 \leq a_i < n),表示数组 aa 的元素。

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

输出格式

对于每个测试用例,输出一个答案,对 998 244 353998\,244\,353 取模。

输入输出样例

  • 输入#1

    4
    3
    0 0 1
    4
    0 0 1 1
    5
    0 0 1 2 2
    4
    1 1 1 1

    输出#1

    11
    26
    53
    0

说明/提示

在第一个测试用例中,我们需要考虑七个子序列:

  • [0][0]:得分为 11。
  • [0][0]:得分为 11。
  • [1][1]:得分为 00。
  • [0,0][0,0]:得分为 22。
  • [0,1][0,1]:得分为 22。
  • [0,1][0,1]:得分为 22。
  • [0,0,1][0,0,1]:得分为 33。

因此,第一个测试用例的答案为 1+1+2+2+2+3=111+1+2+2+2+3=11。在最后一个测试用例中,所有子序列的得分均为 00。

由 ChatGPT 4.1 翻译

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

首页