#1152: 心得


asnewchien@gmail.com (david chien)

School : No School
ID : 2663
IP address : [192.168.120.33]
Last Login :
2023-06-09 09:53:05
a706. 快餐店排隊 (fastfood) -- MOIC 2022 | From: [192.168.120.33] | Post Date : 2023-06-01 10:18

這題先別急著找我要 code

大家可先參考我的想法。

如果要用 python ac 這題。

肯定是要動動腦的。

 

第一點

 

N <= 1000

如果 close 500 

你要如何快速判別 500 兩旁可用的櫃台編號。

用迴圈往兩旁找,太慢了。

 

第二點

當有客人上門 welcome

要如何找到人數最少的櫃台

用迴圈往右找,太慢了。

 
#1153: Re:心得


asnewchien@gmail.com (david chien)

School : No School
ID : 2663
IP address : [192.168.120.33]
Last Login :
2023-06-09 09:53:05
a706. 快餐店排隊 (fastfood) -- MOIC 2022 | From: [192.168.120.33] | Post Date : 2023-06-01 10:37

以上兩點對一個沒有練習很多的學生,

應該很難達成。

 

可以將上面兩個問題,分別出題目。

 

 
#1244: Re:心得


asnewchien@gmail.com (david chien)

School : No School
ID : 2663
IP address : [192.168.120.33]
Last Login :
2023-06-09 09:53:05
a706. 快餐店排隊 (fastfood) -- MOIC 2022 | From: [192.168.120.33] | Post Date : 2023-06-09 12:50

要如何快速的判定鄰近 available 的櫃台編號

 

以這組為例

 

5

3 1 4 1 5

 

一開始我將測資建表

 

d = {1: [3, -1, 2], 2: [1, 1, 3], 3: [4, 2, 4], 4: [1, 3, 5], 5: [5, 4, -1]}

 

1: [3, -1, 2] # 1 號台的排隊人數是 3, 左手是 -1, 右手是 2 號

2: [1, 1, 3]  # 2 號台的排隊人數是 1, 左手是  1, 右手是 3 號

...

假設 close 3

 

先查 d[3] , 左手是 2 右手是 4

3 號即將關閉

告訴 4 號, 你的左手變 2

告訴 2 號, 你的右手變 4

 

d[4] 變 4: [1, 2, 5]

d[2] 變 2: [1, 1, 4]

 

這樣就不必用迴圈查找了

 
ZeroJudge Forum