问题描述:
有n个人排队到r个水龙头去打水,他们装满水桶的时间t1、t2………..tn为整数且各不相等,应如何安排他们的打水顺序才能使他们总共花费的时间最少?
输入说明:
第一行n,r (n<=500,r<=75)
第二行为n个人打水所用的时间Ti (Ti<=100);
输出说明:
最少的花费时间
范例演示:
输入:3 2
1 2 3
输出:7
解题思路:
每个水龙头都要排人,而每个水龙头排的第n个人的等待时间就是该水龙头前面n-1个人打水时间总和,而该人打水所用时间就是他的等待时间加上他打水的时间,每个人都是这样,而每个人的用时加起来就是总用时。让总用时最少就要让每个人的时间最少,而每个人打水时间不会变,那么就要让每个人等待时间最少,那就要求排在这个人前面的人的打水时间要比他少。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,r,sum=0;
cin>>n>>

最低0.47元/天 解锁文章
823





