CF626F Group Projects
题目描述
班级中有 $n$ 个学生正在进行小组项目。学生们将分成若干组(有些学生可以单独成组),分别完成各自的独立部分,然后一起讨论结果。第 $i$ 个学生完成他/她的独立部分需要 $a_i$ 分钟。
如果学生之间的工作速度不同,较快的学生会感到沮丧,较慢的学生会感到有压力。特别地,某一个小组的不平衡度定义为该组内最大 $a_i$ 减去最小 $a_i$。注意,若某一组只有一个学生,其不平衡度为 $0$。问有多少种不同的分组方式,使得所有小组的不平衡度总和不超过 $k$?
如果存在一对学生,在一种分组中属于同一组,在另一种分组中属于不同组,则这两种分组被认为是不同的。
输入格式
第一行包含两个用空格分隔的整数 $n$ 和 $k$($1 \leq n \leq 200$,$0 \leq k \leq 1000$),分别表示学生人数和允许的最大总不平衡度。
第二行包含 $n$ 个用空格分隔的整数 $a_i$($1 \leq a_i \leq 500$),表示第 $i$ 个学生完成其独立部分所需的时间。
输出格式
输出一个整数,表示学生可分组的方案数。由于答案可能很大,请输出答案对 $10^9+7$ 取模后的结果。
说明/提示
在第一个样例中,有三种方案:
- 第一、第二个学生分为一组,第三个学生单独成组。总不平衡度为 $2+0=2$。
- 第一个学生单独成组,第二、第三个学生分为一组。总不平衡度为 $0+1=1$。
- 所有三个学生都单独成组。总不平衡度为 $0$。
在第三个样例中,总不平衡度必须为 $0$,因此每个学生必须单独成组。
由 ChatGPT 5 翻译