P12981 [GCJ 2022 Qualification] d1000000

题目描述

虽然最常见的骰子有 6 个面,每个面显示 1 到 6 的不同整数,但许多游戏会使用其他类型的骰子。特别地,$d_k$ 表示一个有 $k$ 个面的骰子,每个面显示 1 到 $k$ 的不同整数。$d_6$ 是标准骰子,$d_4$ 有四个面,而 $d_{1000000}$ 有一百万个面。 ![](https://cdn.luogu.com.cn/upload/image_hosting/b9fu60so.png) 在这个问题中,我们从一个包含 $\mathbf{N}$ 个骰子的集合开始。第 $i$ 个骰子是 $d_{\mathbf{S}_i}$,即它有 $\mathbf{S}_i$ 个面,分别显示 $1$ 到 $\mathbf{S}_i$ 的整数。从 $x$ 开始、长度为 $\ell$ 的顺子是指整数序列 $x$, $x + 1$, $\cdots$, $x + (\ell - 1)$。我们需要选择部分(或全部)骰子,并从每个骰子中选取一个数字来组成一个顺子。用这种方式我们能组成的最长顺子有多长?

输入格式

输入的第一行给出测试用例的数量 $\mathbf{T}$。随后是 $\mathbf{T}$ 个测试用例。每个测试用例由两行描述:第一行包含一个整数 $\mathbf{N}$,表示游戏中的骰子数量;第二行包含 $\mathbf{N}$ 个整数 $\mathbf{S}_1$, $\mathbf{S}_2$, $\cdots$, $\mathbf{S}_\mathbf{N}$,分别表示每个骰子的面数。

输出格式

对于每个测试用例,输出一行 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是能组成顺子的最长骰子数量。

说明/提示

**样例解释** 在样例 #1 中,有多个方法可以用所有 $4$ 个骰子组成一个顺子。上图展示了一种可能的方式。 在样例 #2 中,由于所有骰子的最大面数都不超过 $5$,因此无法组成超过 $5$ 个骰子的顺子。有多种方法可以组成恰好 $5$ 个骰子的顺子,例如:从两个 $d_5$ 中选取 $4$ 和 $5$,再从三个 $d_4$ 中选取 $1$、$2$ 和 $3$,形成顺子 $1, 2, 3, 4, 5$。 在样例 #3 中,可以通过丢弃一个 $d_4$ 并使用剩余的 $d_4$、$d_5$ 和 $d_6$ 获取 $1$ 到 $4$,用 $d_7$ 获取 $5$ 到 $7$,用 $d_{10}$ 获取 $8$ 和 $9$,从而组成顺子 $1, 2, 3, 4, 5, 6, 7, 8, 9$。无法组成长度为 $10$ 的顺子,因此这是最优解。 在样例 #4 中,我们只能组成长度为 $1$ 的顺子,但可以通过从给定的 $d_{10}$ 中任选一个数字来实现。 **限制条件** - $1 \leq \mathbf{T} \leq 100$。 **测试集 1(9 分,可见评测结果)** - $1 \leq \mathbf{N} \leq 10$。 - $4 \leq \mathbf{S}_i \leq 20$,对所有 $i$ 成立。 **测试集 2(11 分,可见评测结果)** - $1 \leq \mathbf{N} \leq 10^5$。 - $4 \leq \mathbf{S}_i \leq 10^6$,对所有 $i$ 成立。 翻译由 DeepSeek V3 完成