CF2130A Submission is All You Need

题目描述

对于一个由非负整数组成的多重集 $T$,我们定义: - $\text{sum}(T)$ 表示 $T$ 中所有元素的和。例如,如果 $T = \{0,1,1,3\}$,那么 $\text{sum}(T)=0+1+1+3=5$。 - $\text{mex}(T)$ 表示不在 $T$ 中的最小非负整数。例如,如果 $T = \{0,1,1,3\}$,那么 $\text{mex}(T)=2$,因为 $2$ 是最小的不在 $T$ 中的非负整数。 现在给定一个大小为 $n$ 的多重集 $S$,其中包含非负整数。初始时,你的得分为 $0$。你可以进行如下操作任意次(可以为零次,顺序不限): - 选择 $S$ 的一个子集 $S' \subseteq S$(即 $S'$ 包含 $S$ 当前的部分元素),将 $\text{sum}(S')$ 加到你的得分上,然后从 $S$ 中移除 $S'$。 - 选择 $S$ 的一个子集 $S' \subseteq S$,将 $\text{mex}(S')$ 加到你的得分上,然后从 $S$ 中移除 $S'$。 请你求出能够获得的最大得分。

输入格式

每组测试数据包含多组测试用例。第一行包含一个整数 $t$($1 \le t \le 10^3$),表示测试用例的组数。 每组测试用例的第一行包含一个整数 $n$($1 \le n \le 50$)。 第二行包含 $n$ 个整数 $S_1, S_2, \ldots, S_n$($0 \le S_i \le 50$)。

输出格式

对于每组测试用例,输出一个整数,表示能够获得的最大得分。

说明/提示

在第一个测试用例中,一种可能的最优策略如下: - 选择 $S'=\{0,1\}$,将 $\text{mex}(S')=\text{mex}(\{0,1\})=2$ 加到你的得分上,然后从 $S$ 中移除 $S'$。此时你的得分为 $2$,$S=\{1\}$。 - 选择 $S'=\{1\}$,将 $\text{sum}(S')=\text{sum}(\{1\})=1$ 加到你的得分上,然后从 $S$ 中移除 $S'$。此时你的得分为 $3$,$S=\varnothing$。 之后无法再进行操作。可以证明 $3$ 是能够获得的最大得分。 由 ChatGPT 4.1 翻译