最優服務次序問題

最優服務次序問題

   設有n個顧客同時等待一項服務,顧客i所需要的服務時間爲ti,應如何安排顧客的服務次序,才能使平均等待時間最短?平均等待時間是n個顧客等待服務時間的總和除以n。

測試用例:

10(顧客數)

56 121 99 1000 234 33 55 99 812(所有顧客的服務時間)

輸出:

532(最小平均等待時間)


解:

最優服務次序問題:
要想等待時間最短,就要將服務時間見最短的先進行服務
所以就是按照服務時間進行排序之後的服務次序
而在計算等待時間的時候需要加上前面的顧客服務時間 

#include <stdio.h>
#include <algorithm>

using namespace std;
int main()
{
	
	int n;
	int a[100];
	scanf("%d",&n);
	int sum=0;
	int temp=0; 
	for(int i=0;i<n;i++)
	{
		scanf("%d",&a[i]);
	}
	sort(a,a+n);
	for(int i=0;i<n;i++)
	{
		temp+=a[i];
		sum+=temp;
	}
	printf("%lf",sum*1.0/n);
	
	return 0;
 } 





發佈了161 篇原創文章 · 獲贊 70 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章