用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c++代码库

多处最优服务次序问题

2012-09-20 作者: 神马举报

[c++]代码库

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

#include<iostream>
#include<algorithm>
using namespace std;
const int lenn=10000;
const int lens=500;
int n,s;
int a[lenn];
int wait[lens];
int find()
{
	int minTime=wait[0];
	int pos=0;
	for ( int i=1; i<s; i++ )
	{
		if ( minTime>wait[i] )
		{
			minTime=wait[i];
			pos=i;
		}
	}
	return pos;
}
int main()
{
	while ( cin>>n>>s )
	{
		int i;
		for ( i=0; i<n; i++ )
		{
			cin>>a[i];
		}
		sort ( a,a+n );
		memset ( wait,0,sizeof ( wait ) );
		double sum=0;
		for ( i=0; i<n; i++ )
		{
			int t=find();
			wait[t]+=a[i];
			sum+=wait[t];
		}
		double res=sum/n;
		printf ( "%.2f\n",res );
	}
	return 0;
}



网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...