CF1267J.Just Arrange the Icons

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

BerPhone X 即将发布,预装了 nn 个应用程序。每个应用程序都有一个类别,表示该应用的类型或主题(如“游戏”、“商务”或“教育”)。类别用 11 到 nn 之间的整数表示,第 ii 个应用的类别为 cic_i。

你可以选择 mm —— 屏幕的数量,以及 ss —— 每个屏幕的容量。你需要将所有 nn 个应用的图标(每个应用一个图标)安排到屏幕上,满足以下要求:

  • 每个屏幕上的所有图标必须属于同一类别的应用(不同屏幕可以包含同一类别的应用的图标);
  • 每个屏幕上的图标数量要么正好等于 ss,要么等于 s−1s-1。

你的任务是求出最小可能的屏幕数量 mm。

输入格式

第一行包含一个整数 tt(1≤t≤10 0001 \le t \le 10\,000),表示测试用例的数量。接下来有 tt 个测试用例。

每个测试用例的第一行包含一个整数 nn(1≤n≤2⋅1061 \le n \le 2\cdot10^6),表示图标的数量。第二行包含 nn 个整数 c1,c2,…,cnc_1, c_2, \dots, c_n(1≤ci≤n1 \le c_i \le n),其中 cic_i 表示第 ii 个应用的类别。

保证所有测试用例中 nn 的总和不超过 2⋅1062\cdot10^6。

输出格式

输出 tt 个整数,按输入顺序依次给出每个测试用例的答案。每个答案为一个整数 mm,即满足要求的最小屏幕数量。

输入输出样例

  • 输入#1

    3
    11
    1 5 1 5 1 5 1 1 1 1 5
    6
    1 2 2 2 2 1
    5
    4 3 3 1 2
    

    输出#1

    3
    3
    4
    

说明/提示

在示例的第一个测试用例中,所有图标可以放在三个容量为 44 的屏幕上:一个放 44 个类别为 11 的图标,一个放 33 个类别为 11 的图标,一个放 44 个类别为 55 的图标。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页