離散事件模擬 銀行管理(佇列)

2021-09-25 17:26:09 字數 1289 閱讀 8849

離散事件模擬-銀行管理

time limit: 1000 ms memory limit: 65536 kib

submit statistic

problem description

現在銀行已經很普遍,每個人總會去銀行辦理業務,乙個好的銀行是要考慮 平均逗留時間的,即: 在一定時間段內所有辦理業務的人員逗留的時間的和/ 總的人數。逗留時間定義為 人員離開的時間減去人員來的時間。銀行只有考慮了這一點,我們在辦理業務的時候,才不會等太多的時間。

為了簡化問題,我們認為銀行只有一號視窗和二號視窗可以辦理業務 ,並且在時間範圍是12<=time<=18,即從中午十二點到晚上十八點,輸入資料採用分鐘即0代表中午12點,60代表下午一點,90代表下午一點半… 這樣time>=0&&time<=360, 如果來的時間超出這個時間段不接受(辦理時間不受限制)。每個人到達的時間都不一樣。顧客到達的時候,總是前往人數少的那個視窗。如果人數相當或者兩個視窗都沒有人總是前往1號視窗。請計算平均逗留時間=總逗留的分鐘數/總的人數。

input

第一行乙個整數t(0 < t <= 100), 代表輸入的組數。

對於每一組輸入乙個整數n (0 < n <= 100),代表有n個人。然後是n行,每行有兩個資料 x 與 y。 x代表顧客到達時間,y代表辦理業務需要的時間。x, y 為整數(0 <= x <= 360)(y > 0 && y <= 15)。資料保證按顧客來的先後順序輸入。

output

對於每組資料輸出平均逗留時間,保留兩位小數。

sample input11

60 10

sample output

10.00

hint

source

gyx

#include #include using namespace std;

int main()

while(!p2.empty()&&p2.front()<=x)

if(p1.size()<=p2.size())//選長度短的對

else //需要等

ans1=y;

sum+=(y-x); //逗留時間

p1.push(ans1); //辦完此人業務後的時間入隊

}else

else

ans2=y;

sum+=(y-x);

p2.push(ans2);}}

double z;

z=sum*1.0/n;

printf("%.2lf\n",z);

}return 0;

}

離散事件模擬 銀行管理 佇列

time limit 1000ms memory limit 65536k 現在銀行已經很普遍,每個人總會去銀行辦理業務,乙個好的銀行是要考慮 平均逗留時間的,即 在一定時間段內所有辦理業務的人員逗留的時間的和 總的人數。逗留時間定義為 人員離開的時間減去人員來的時間。銀行只有考慮了這一點,我們在辦...

離散事件模擬 銀行管理

離散事件模擬 銀行管理 timelimit 1000ms memory limit 65536k 題目描述 現在銀行已經很普遍,每個人總會去銀行辦理業務,乙個好的銀行是要考慮平均逗留時間的,即 在一定時間段內所有辦理業務的人員逗留的時間的和 總的人數。逗留時間定義為人員離開的時間減去人員來的時間。銀...

離散事件模擬 銀行管理

time limit 1000ms memory limit 65536k 有疑問?點這裡 現在銀行已經很普遍,每個人總會去銀行辦理業務,乙個好的銀行是要考慮 平均逗留時間的,即 在一定時間段內所有辦理業務的人員逗留的時間的和 總的人數。逗留時間定義為 人員離開的時間減去人員來的時間。銀行只有考慮了...