最小平均等待时间
时间:2014-05-15 01:15:36
收藏:0
阅读:572
最小平均等待时间
题目描述
有n个顾客同时在等待一项服务,顾客i需要的服务时间为ti,1≤i≤n。要安排一个服务次序使得平均等待时间最小(平均等待时间是n个顾客等待服务时间的总和除以n)。请编写算法,计算最小平均等待时间。
输入
第一行为测试用例个数m,m≤1000。 第二行开始为m个测试用例,每个测试用例由一组空格间隔的整数组成,第一个整数n为顾客的人数,后面n个整数为每个顾客需要的服务时间t,0<m≤1000,0<t≤1000。
输出
对每个测试用例,输出最小平均等待时间的整数部分(舍去小数部分),每个输出占一行。
样例输入
2
5 15 9 3 14 3
10 13 3 12 9 6 9 1 91 44 32
样例输出
10
题目描述
有n个顾客同时在等待一项服务,顾客i需要的服务时间为ti,1≤i≤n。要安排一个服务次序使得平均等待时间最小(平均等待时间是n个顾客等待服务时间的总和除以n)。请编写算法,计算最小平均等待时间。
输入
第一行为测试用例个数m,m≤1000。 第二行开始为m个测试用例,每个测试用例由一组空格间隔的整数组成,第一个整数n为顾客的人数,后面n个整数为每个顾客需要的服务时间t,0<m≤1000,0<t≤1000。
输出
对每个测试用例,输出最小平均等待时间的整数部分(舍去小数部分),每个输出占一行。
样例输入
2
5 15 9 3 14 3
10 13 3 12 9 6 9 1 91 44 32
样例输出
10
36
#include<iostream>
#include<algorithm>
using
namespace
std;
int
main()
{
int
n;
int
m;
int
sum;
int
x[1020];
cin>>n;
while
(n--)
{
cin>>m;
for
(
int
i=0;i<m;i++)
{
cin>>x[i];
}
sort(x,x+m);
sum=0;
for
(
int
j=0;j<m;j++)
{
sum+=x[j]*(m-1-j);
}
cout<<sum/m<<endl;
}
return
0;
}
即是由小到大排序,先进行短时间任务,然后分别乘以等待个数,利用循环即可
原文:http://blog.csdn.net/u013240812/article/details/25831045
评论(0)