離散事件模擬 銀行管理

2021-07-03 09:02:41 字數 1519 閱讀 4942

離散事件模擬

-銀行管理

timelimit: 1000ms memory limit: 65536k

題目描述

現在銀行已經很普遍,每個人總會去銀行辦理業務,乙個好的銀行是要考慮平均逗留時間的,即: 在一定時間段內所有辦理業務的人員逗留的時間的和

/總的人數。逗留時間定義為人員離開的時間減去人員來的時間。銀行只有考慮了這一點,我們在辦理業務的時候,才不會等太多的時間。

為了簡化問題,我們認為銀行只有一號視窗和二號視窗可以辦理業務,並且在時間範圍是

12<=time<=18,

即從中午十二點到晚上十八點,輸入資料採用分鐘即

0代表中午

12點,

60代表下午一點,

90代表下午一點半…這樣

time>=0&&time<=360,

如果超出這個時間段概不接受,在這個時間段的一律接受。每個人到達的時間都不一樣。顧客到達的時候,總是前往人數少的那個視窗。如果辦業務的兩個人進入離去發生在同一時間,則遵從先離去後進入。如果人數相當或者兩個視窗都沒有人總是前往

1號視窗。請計算平均逗留時間

=總逗留的分鐘數

/總的人數。

輸入第一行乙個整數

t(0代表輸入的組數

對於每一組輸入乙個整數

n(0,代表有

n個人。然後是

n行,每行有兩個資料x與

y。x代表顧客到達時間,

y代表該顧客逗留時間。

xy為整數(0=)

(y>0&&y<=15)

。資料保證按顧客來的先後順序輸入。

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

示例輸入11

6010

示例輸出

10.00

主要是對佇列的應用

#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rr freopen("input.txt","r",stdin)

#define ww freopen("output.txt","w",stdout)

#define inf 0x3f3f3f3f

using namespace std;

int main()

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

if(wd1.size()<=wd2.size())

else

sum+=y-x;//計算逗留時間

ans1=y;

wd1.push(y);

}else

else

sum+=y-x;

ans2=y;

wd2.push(y);}}

printf("%.2lf\n",sum*1.0/n);

}return 0;

}

離散事件模擬 銀行管理

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

離散事件模擬 銀行管理

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

離散事件模擬 銀行管理

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