CF1249A.Yet Another Dividing into Teams

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

Yet Another Dividing into Teams

题目描述

你是一组由 nn 名学生组成的队伍的教练。第 ii 名学生的编程能力为 aia_i。所有学生的编程能力值均不相同。你希望将他们分成若干个队伍,要求满足:

  • 对于任意两个学生 iijj,如果 aiaj=1|a_i - a_j| = 1,则他们不能在同一个队伍中(即同一队伍中任意两名学生的能力值之差必须严格大于 11);
  • 队伍的数量要尽可能少。

你需要回答 qq 个独立的询问。

输入格式

输入的第一行包含一个整数 qq1q1001 \leq q \leq 100),表示询问的数量。接下来有 qq 组询问。

每组询问的第一行包含一个整数 nn1n1001 \leq n \leq 100),表示该组询问中的学生人数。第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1001 \leq a_i \leq 100,所有 aia_i 均不相同),其中 aia_i 表示第 ii 名学生的编程能力值。

输出格式

对于每组询问,输出一个整数,表示在满足条件的情况下,最少需要分成多少个队伍。

说明/提示

在样例的第一个询问中,有 n=4n=4 名学生,能力值为 a=[2,10,1,20]a=[2, 10, 1, 20]。这里唯一的限制是第 11 名和第 33 名学生不能在同一个队伍中(因为 a1a3=21=1|a_1 - a_3|=|2-1|=1)。可以将他们分成 22 个队伍,例如第 112244 名学生在第一个队伍,第 33 名学生在第二个队伍。

在样例的第二个询问中,有 n=2n=2 名学生,能力值为 a=[3,6]a=[3, 6]。可以将他们全部分在同一个队伍中。

由 ChatGPT 4.1 翻译

样例

4
4
2 10 1 20
2
3 6
5
2 3 4 99 100
1
42
2
1
2
1

在线编程 IDE

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