#SLT07A. 2026年S组模拟赛10连测第7场-T1 程老师的试剂分组

2026年S组模拟赛10连测第7场-T1 程老师的试剂分组

项目 内容
输入文件名 reagent.in
输出文件名 reagent.out
可执行文件名 reagent
每个测试点时限 1.0 秒
内存限制 512 MiB
测试点数目 20
是否等分 是

结果比较方式为全文比较(过滤行末空格及文末换行)。

题目描述

实验室在入库时给每种试剂编了一个种类号。今天送到待处理区的是 nn 瓶试剂,程老师按送检顺序把它们登记成一行,其中第 ii 瓶试剂的种类号为 cic_i:登记值相同表示这两瓶属于同一种类,登记值不同表示种类不同。登记完成之后,瓶与瓶之间的先后顺序不再有意义——某一瓶试剂放进哪只盒子,只由它的种类号决定。

这些试剂要用同一种规格的盒子分装后送出。装盒必须同时满足两条规矩:同一只盒子里,任意两瓶试剂的种类号都不相同;每只盒子至多装 kk 瓶试剂。盒子的数量不限,但用到的每一只盒子里都要装至少一瓶试剂。

仓库管理员在出库单上只登记这一批试剂一共用掉多少只盒子,不登记具体的装盒方案;只要盒数相同,各种装法都算同样的结果。

请你根据送检登记的结果算出:在两条规矩都满足的前提下,这一批试剂最少要用多少只盒子。

输入格式

从文件 reagent.in 中读入数据。

第一行两个整数 n,kn, k,分别表示试剂的瓶数与每只盒子最多能装的瓶数。

第二行 nn 个整数 c1,c2,…,cnc_1, c_2, \dots, c_n,依次表示每瓶试剂的种类号。

输出格式

输出到文件 reagent.out 中。

输出一行一个整数,表示最少需要用到的盒子数。

样例

6 3
1 1 2 2 2 3
3

样例 1 解释

这 6 瓶试剂里,种类号为 2 的有 3 瓶。它们两两种类相同,任何两瓶都不能放进同一只盒子,因此盒子数不可能少于 3。而 3 只盒子也确实够用:第一只盒子装种类 2、种类 1、种类 3 的试剂各一瓶,第二只盒子装种类 2、种类 1 的试剂各一瓶,第三只盒子装剩下的那一瓶种类 2 的试剂——三只盒子分别装了 3 瓶、2 瓶、1 瓶,都没有超过 3 瓶,盒内也没有重复的种类号。所以最少是 3 只盒子。

5 2
1 2 3 4 5
3

样例 2 解释

这 5 瓶试剂的种类号两两不同,因此种类号互不相同的限制不会妨碍任何一种装箱安排;但每只盒子至多装 2 瓶,5 瓶至少要 3 只盒子。而 3 只盒子也确实够用:把种类 1 与种类 2 的两瓶装进一只盒子,把种类 3 与种类 4 的两瓶装进另一只盒子,剩下的一瓶单独装一只盒子——每只盒子都不超过 2 瓶。所以最少是 3 只盒子。

数据范围

对于所有测试数据,保证:

  • 1≤n≤1051 \le n \le 10^5;
  • 1≤k≤n1 \le k \le n;
  • 1≤ci≤n1 \le c_i \le n。

各测试点的约束如下(表中只列出 nn 的上界,kk 与 cic_i 仅受上述全局约束限制):

测试点 nn 特殊性质
1∼21 \sim 2 ≤10\le 10 无
3∼63 \sim 6 ≤15\le 15
7∼107 \sim 10 ≤20\le 20
11∼1411 \sim 14 ≤2000\le 2000
15∼1815 \sim 18 ≤105\le 10^5
1919 A
2020 B
  • 特殊性质 A:所有试剂的种类号都相同。
  • 特殊性质 B:任意两瓶试剂的种类号都不相同。
难度 未评定
通过率 —
尝试 0
通过 0
ID
3793
类型
传统题
Time Limit
1000ms
Memory Limit
512MiB
上传者