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 翻译