CF1406A.Subset Mex

传统题 时间 2000 ms 内存 256 MiB 4 尝试 1 已通过 1 标签

Subset Mex

题目描述

给定一个整数集合(集合中可以包含相同的元素)。

你需要将其分成两个子集 AABB(它们都可以包含相同的元素,也可以为空)。你需要最大化 mex(A)+mex(B)mex(A)+mex(B) 的值。

这里,集合的 mexmex 表示集合中不存在的最小非负整数。例如:

  • mex({1,4,0,2,2,1})=3mex(\{1,4,0,2,2,1\})=3
  • mex({3,3,2,1,3,0,0})=4mex(\{3,3,2,1,3,0,0\})=4
  • mex()=0mex(\varnothing)=0(空集的 mexmex

如果对于任意整数 xx,该整数在原集合中出现的次数等于其在 AABB 中出现次数之和,则称原集合被分成了两个子集 AABB

输入格式

输入包含多组测试数据。第一行包含一个整数 tt1t1001\leq t\leq 100),表示测试用例的数量。接下来是每个测试用例的描述。

每个测试用例的第一行包含一个整数 nn1n1001\leq n\leq 100),表示集合的大小。

每个测试用例的第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\dots,a_n0ai1000\leq a_i\leq 100),表示集合中的元素。

输出格式

对于每个测试用例,输出 mex(A)+mex(B)mex(A)+mex(B) 的最大值。

说明/提示

在第一个测试用例中,A={0,1,2},B={0,1,5}A=\{0,1,2\},B=\{0,1,5\} 是一种可能的划分方式。

在第二个测试用例中,A={0,1,2},B=A=\{0,1,2\},B=\varnothing 是一种可能的划分方式。

在第三个测试用例中,A={0,1,2},B={0}A=\{0,1,2\},B=\{0\} 是一种可能的划分方式。

在第四个测试用例中,A={1,3,5},B={2,4,6}A=\{1,3,5\},B=\{2,4,6\} 是一种可能的划分方式。

由 ChatGPT 4.1 翻译

样例

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

在线编程 IDE

建议全屏模式获得最佳体验