sdut 2087 离散事件模拟-银行管理
離散事件模擬-銀行管理
Time Limit:?1000MS?Memory Limit:?65536KB Submit?Statistic?DiscussProblem Description
?
現(xiàn)在銀行已經(jīng)很普遍,每個(gè)人總會(huì)去銀行辦理業(yè)務(wù),一個(gè)好的銀行是要考慮 平均逗留時(shí)間的,即: 在一定時(shí)間段內(nèi)所有辦理業(yè)務(wù)的人員逗留的時(shí)間的和/ 總的人數(shù)。逗留時(shí)間定義為 人員離開的時(shí)間減去人員來的時(shí)間。銀行只有考慮了這一點(diǎn),我們?cè)谵k理業(yè)務(wù)的時(shí)候,才不會(huì)等太多的時(shí)間。
為了簡(jiǎn)化問題,我們認(rèn)為銀行只有一號(hào)窗口和二號(hào)窗口可以辦理業(yè)務(wù) ,并且在時(shí)間范圍是12<=time<=18,即從中午十二點(diǎn)到晚上十八點(diǎn),輸入數(shù)據(jù)采用分鐘即0代表中午12點(diǎn),60代表下午一點(diǎn),90代表下午一點(diǎn)半… 這樣time>=0&&time<=360, 如果來的時(shí)間超出這個(gè)時(shí)間段不接受(辦理時(shí)間不受限制)。每個(gè)人到達(dá)的時(shí)間都不一樣。顧客到達(dá)的時(shí)候,總是前往人數(shù)少的那個(gè)窗口。如果人數(shù)相當(dāng)或者兩個(gè)窗口都沒有人總是前往1號(hào)窗口。請(qǐng)計(jì)算平均逗留時(shí)間=總逗留的分鐘數(shù)/總的人數(shù)。
Input
?
第一行一個(gè)整數(shù)t(0 < t <= 100), 代表輸入的組數(shù)。
對(duì)于每一組輸入一個(gè)整數(shù)n (0 < n <= 100),代表有n個(gè)人。然后是n行,每行有兩個(gè)數(shù)據(jù) x 與 y。 x代表顧客到達(dá)時(shí)間,y代表辦理業(yè)務(wù)需要的時(shí)間。x, y 為整數(shù)(0 <= x <= 360)(y > 0 && y <= 15)。數(shù)據(jù)保證按顧客來的先后順序輸入。
Output
?
對(duì)于每組數(shù)據(jù)輸出平均逗留時(shí)間,保留兩位小數(shù)。
Example Input
1 1 60 10Example Output
10 http://blog.csdn.net/u014361775/article/details/41419205 #include <iostream> #include <queue> #include <stdio.h> using namespace std; int main() {int t,n;cin>>t;while(t--){queue<int>a0;queue<int>a1;int x,y,t0=0,t1=0;double sum=0.0;cin>>n;for(int i=0;i<n;++i){cin>>x>>y;if(0<=x&&x<=360){while(!a0.empty()&&a0.front()<=x)a0.pop();while(!a1.empty()&&a1.front()<=x)a1.pop();if(a0.size()<=a1.size()){if(x>=t0)t0=x+y;elset0=t0+y;a0.push(t0);sum+=t0-x;}else{if(x>=t1)t1=x+y;elset1+=y;a1.push(t1);sum+=t1-x;}}}printf("%.2lf\n",sum/n);}return 0; }總結(jié)
以上是生活随笔為你收集整理的sdut 2087 离散事件模拟-银行管理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sdut 1479 数据结构实验之栈与队
- 下一篇: A Simple Math Proble