#P1227. 排队打水问题
排队打水问题
【题目描述】
有n个人排队到r个水龙头去打水,他们装满水桶的时间t₁, t₂, ..., tₙ为整数且各不相等。每个人打水的时间等于排队的时间加上实际打水的时间,切换过程不消耗时间。求安排他们的打水顺序,使得所有人花费的总时间最少。
总时间定义为每个人的打水时间(排队时间+打水时间)的总和。
【输入格式】
第1行,两个整数n和r(1≤n≤500,1≤r≤100),分别表示人数和水龙头数量。
第2行,n个正整数t₁, t₂, ..., tₙ(1≤tᵢ≤1000),表示每个人装满水桶的时间。
【输出格式】
1行,一个正整数,表示最少的总时间。
【样例输入】
4 2
2 6 4 5
【样例输出】
23
【样例解释】
安排方式如下:
-
水龙头1:先安排时间为2的人,再安排时间为5的人。
- 第一个人:打水时间2(无排队时间),贡献2。
- 第二个人:排队时间2,打水时间5,总时间2+5=7,贡献7。
- 水龙头1总贡献:2+7=9。
-
水龙头2:先安排时间为4的人,再安排时间为6的人。
- 第一个人:打水时间4(无排队时间),贡献4。
- 第二个人:排队时间4,打水时间6,总时间4+6=10,贡献10。
- 水龙头2总贡献:4+10=14。
所有人的总时间为两个水龙头的贡献之和:9+14=23。