問題描述:
設有n個顧客同時等待一項服務。顧客 i 需要的服務時間是 ti,共有s處可以提供此項服務。應如何安排n個顧客的服務次序,才能使平均等待時間達到最小?平均等待時間使n個顧客等待服務的總時間的和除以n。
輸入:10 2
56 12 1 99 1000 234 33 55 99 812
輸出:336
思路:我們同樣知道肯定是先需要服務時間短的客戶先被服務,但是又多個視窗,這其中具體安排客戶應該準受怎樣的規則呢?其實我們可以考慮計算每個視窗的工作時間,每次視窗服務乙個人時,該視窗之前工作的時間就是該人等待的時間。
code:
#include #include #include using namespace std;
const int n = 10010;
int a[n];
int b[n]; // 每個客戶在得到視窗之前等待的時間
int sum[n]; // 每個視窗對其所用客戶等待時間之和
int main()
int ans = 0;
for(int i = 0; i < s; i++)
ans += sum[i];
cout << 1.0 * ans / n << endl;
return 0;
}
貪心 多處最優服務次序問題
問題 設有n個顧客同時等待一項服務,顧客i需要的服務時間為ti 1 i n 共有s處可以提供此項服務,應如何安排n個顧客需要的服務次序才能使平均等待時間達到最小?平均等待時間等於n個顧客等待服務的總時間除以n。輸入 第一行兩個正整數n和s表示n個顧客s處服務,接下來n個顧客需要的服務時間 輸出 平均...
多處最優服務次序問題(貪心)
問題描述 設有n個顧客等待服務,有k處可以提供這個服務,確定最優服務次序,讓顧客平均等待時間最少,這個平均等待時間就是顧客們等待的總和 n。input 第一行輸入n,k,表示n名顧客,k處服務店 第二行分別輸入n個整數,表示每名顧客所需要的服務時間。out輸出最少平均等待時間 輸入樣例10 2 56...
多處最優服務次序問題
設有n個顧客同時等待一項服務,顧客i需要的服務時間為ti,1 i n,共有s處可以提供此項服務。應如何安排n個顧客的服務次序才能使平均等待時間達到最小?平均等待時間是n個顧客等待服務時間的總和除以n。給定的n個顧客需要的服務時間和s的值,程式設計計算最優服務次序。輸入第一行有2個正整數n和s,表示有...