數(shù)學不好千萬別來ACM啊!
這道題的大意是這樣的,某人要去寄快遞,但是所有窗口都有人在服務(wù),但是沒人排隊,已知員工的效率(單位時間的工作量占總工作量的值)為指數(shù)分布,求解這個人要寄出快遞需要多久。
感覺好坑,讀了半天題意都沒懂……
開始分析:
已知寄出快遞的總時間分為等待時間和處理時間。
等待時間:
由于每個員工都是獨立的,而指數(shù)分布(y=λe^-λx)的期望是λ,λ表示每位員工的效率在題目中用ki來表示,所以等待時間的期望值應(yīng)該是1/(Σki)。
處理時間:
對于每位員工,完成一次訂單的時間都是1/ki,而選擇每位員工的概率都為 ki /(∑ki),那么。期望的服務(wù)時間就可以表示為:∑(ki / (∑ki) * 1 / ki) = N / (∑ki)
將兩個時間做和,就是總需要的時間了。
即N+1/ (∑ki)。已知如上推論,可以將代碼寫出來了。但是需要注意的是,這道題輸入的已使用時間c是沒有用的,所以對數(shù)學不好的人來說,真的好坑( ̄o ̄) 。
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
int N,T;
double sum,k;
int c;
int main(void)
{
int cas = 1;
scanf("%d", &T);
while(T--){
scanf("%d", &N);
sum = 0.0;
for(int i = 0; i < N; ++i){
scanf("%lf",&k);
sum += k;
}
for(int i = 0; i < N; ++i)
scanf("%d", &c);
printf("Case #%d: %.6f\n",cas++,(N + 1.0) / sum);
}
return 0;
}