搞不清楚的點在於視窗的選擇
可以把時間轉換為int型別的數自,然後排序,需要的資料就有了,但是如何選擇視窗沒搞明白。
借鑑柳神的思路
構建結構體客戶node,裡面come為到達時間和time為需要服務的時長。先將所有滿足條件的(到來時間點在17點之前的)客戶放入陣列,陣列的長度就是需要服務的客戶的個數。window陣列表示某個視窗的結束時間,每個客戶到來時,選擇最早結束時間的視窗,如果最早結束時間比他還早,那麼他一來就能被服務,更新window的值;如果最早結束時間比他還晚,則等待,累加等待時間,然後更新window的值。
#include
#include
#include
using
namespace std;
struct nodetempcustomer;
//false
bool
cmp1
(node a,node b)
intmain()
;//false
custom.
push_back
(tempcustomer);}
sort
(custom.
begin()
,custom.
end(
),cmp1)
; vector<
int>
window
(k,28800);
//false:初始化
double result=
0.0;
for(
int i=
0;isize()
;i++
)//視窗號為tempindex}if
(window[tempindex]
<=custom[i]
.come)
else}if
(custom.
size()
==0)else
return0;
}
vector的初始化:vectorcustom
結構體賦值可以用{},中間使用「,」隔開,賦值的個數要跟結構體中元素的個數相等
結構體初始化,可以在定義之後直接寫
7 48 銀行排隊問題之單視窗「夾塞」版
排隊 夾塞 是引起大家強烈不滿的行為,但是這種現象時常存在。在銀行的單視窗排隊問題中,假設銀行只有1個視窗提供服務,所有顧客按到達時間排成一條長龍。當視窗空閒時,下一位顧客即去該視窗處理事務。此時如果已知第i位顧客與排在後面的第j位顧客是好朋友,並且願意替朋友辦理事務的話,那麼第i位顧客的事務處理時...
資料結構 銀行排隊問題之單視窗「夾塞」版
題目大意 排隊 夾塞 是引起大家強烈不滿的行為,但是這種現象時常存在。在銀行的單視窗排隊問題中,假設銀行只有1個視窗提供服務,所有顧客按到達時間排成一條長龍。當視窗空閒時,下一位顧客即去該視窗處理事務。此時如果已知第i位顧客與排在後面的第j位顧客是好朋友,並且願意替朋友辦理事務的話,那麼第i位顧客的...
銀行排隊問題之單佇列多視窗服務 (25 分)
假設銀行有k個視窗提供服務,視窗前設一條黃線,所有顧客按到達時間在黃線後排成一條長龍。當有視窗空閒時,下一位顧客即去該視窗處理事務。當有多個視窗可選擇時,假設顧客總是選擇編號最小的視窗。本題要求輸出前來等待服務的n位顧客的平均等待時間 最長等待時間 最後完成時間,並且統計每個視窗服務了多少名顧客。輸...