多处最优服务次序问题

原创 2015年11月18日 09:00:29

Description

设有n 个顾客同时等待一项服务。顾客i需要的服务时间为t i,1≤i≤n。共有s处可以提供此项服务。应如何安排n 个顾客的服务次序才能使平均等待时间达到最小?平均等待时间是n 个顾客等待服务时间的总和除以n。

对于给定的n 个顾客需要的服务时间和s的值,计算最优服务次序。

Input

输入数据的第一行有2 个正整数n (n≤10000)和s(s≤1000),表示有n 个顾客且有s 处可以提供顾客需要的服务。接下来的1 行中,有n个正整数,表示n个顾客需要的服务时间。

Output

输出数据只有一个整数(计算结果四舍五入),表示计算出的最小平均等待时间。

Sample Input

10 2 56 12 1 99 1000 234 33 55 99 812

Sample Output

336

 

 贪心策略:最短服务时间优先

代码:

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<iostream>
using namespace std;
#pragma warning(disable:4996)


int data[1090];
int service[1090];
int sum[1090];
int main()
{
int n, s;
while (scanf("%d%d", &n, &s) != EOF)
{
memset(sum,0,sizeof(sum));
memset(service, 0, sizeof(service));
for (int i = 0; i < n; i++)
{
scanf("%d", &data[i]);
}
sort(data, data + n);
int i = 0, j = 0;
while (i < n)
{
service[j] += data[i];
sum[j] += service[j];
i++;
j++;
if (j == s)
j = 0;
}
double sum1 = 0;
for (int i = 0; i < s; i++)
{
sum1 += sum[i];
}
printf("%.3lf\n", sum1 / n);
}
system("pause");
return 0;
}




版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

最优服务次序问题

最优服务次序问题 一、问题描述: 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小?平均等...

最优服务次序问题 和 汽车加油问题

最优服务次序问题问题描述: 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小平均等待时间是n...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

多处最优问题

算法实现题4-7 多处最优服务次序问题 问题描述: 设有n 个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≦i ≦n 。共有s处可以提供此服务。应如何安排n个顾客的服务次序才能使平均等...

费尔V8智能杀毒多处内核拒绝服务漏洞

V8藏着掖着搞了这么多年,除了主界面弄了个毫无用处的动画外,其他附加的程序,例如“隔离区”,“日志管理器”等都是老版本的程序,感觉连个人作品都不如,山寨中的战斗机。哎,让吾等正版用户及其失望。 ...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)