题目 1789

分班

查看题解 ↗GitHub ↗如何评测
题号
1789
时间限制
1000 ms
内存限制
256 MB
标签
动态规划
来源
信息学奥赛一本通 · 高手训练篇·五、动态规划(高手训练)

【题目描述】

校长给钱主任的分班条件是这样子的: 首先有MM个学生,分数从高到低已经排序好了。 其次要分成至多NN个班。 每个班必须要有至少AA个至多BB个小朋友。 一个班的学生,他们的分数必须是连在一起的。也就是说,如果第33个小朋友和第55个小朋友在一间教室,第44个小朋友也必须和他们在一起。 校长还给出了一个评定分班好不好的标准。 每个学生有一个敏感指数,X[i](1≤i≤M)X[i](1≤i≤M)。并且,有一个变量Average=∑i=1MX[i]MAverage =\sum_{i=1}^M\frac{X[i]}{M}。为了方便计算,AverageAverage 取下整,注意是先加起来再除,不是每次除再加。 每个教室有一个舒适程度G[i]G[i] 。而g[i]g[i] 表示的是第ii个小朋友在哪个教室。 现在校长要求最小化评价指数∑i=1M(X[i]−Average)2×G[g[i]]\sum_{i=1}^{M}(X[i]-Average)^2×G[g[i]] 。

【输入】

本题目有多组数据。 第一行有一个整数case(case≤10)case(case≤10),表示有casecase组数据。 接下来对于每组数据的第一行有44个正整数,依次是M,N,A,BM,N,A,B。 第二行有MM个正整数,用空格隔开,分别是X[1],X[2],…,X[M]X[1],X[2],…,X[M]。 第三行有NN个正整数,用空格隔开,分别是G[1],G[2],…,G[N]G[1],G[2],…,G[N]。

【输出】

对于每组数据,要输出三个正整数,以空格隔开,不同数据之间要换行。 三个正整数分别为sigma,class,lastsigma,class,last。分别表示最小的评价指数。在评价指数最小的情况下,安排的教室的最小数目。在评价指数、安排教师数目最小的情况下,最后一个教室的人数的最小数目。

【输入样例】

文本
1
10 3 1 4 
16 11 12 13 10 15 16 17 18 14
4 5 1

【输出样例】

文本
186 3 4

【提示】

【样例解释】 前4个,后4个,中间2个。 【数据规模】

编号 MM NN A  BA\;B XX GG
11 55 11 1≤A≤B≤M1≤A≤B≤M 1≤X[i]≤1000001≤X[i]≤100000 −1000≤G[i]≤1000-1000≤G[i]≤1000
22 ≤10≤10 ≤33
33 ≤100≤100 ≤10≤10
44 ≤1000≤1000 ≤50≤50
55 ≤10000≤10000 ≤200≤200 0≤G[i]≤10000≤G[i]≤1000
66
77
88 −1000≤G[i]≤1000-1000≤G[i]≤1000
99
1010

数据下载

题目 1789 的公开数据

正在读取文件列表…

常用命令

题目 1789 的 ROJ 命令

以下命令默认使用全局安装的 ROJ Skill,请在终端中直接执行;如果修改过 AGENT_HOME,请将命令中的 ~/.agents 替换为对应目录。