#40635: C++詳解


toseanlin@gmail.com (Dr. SeanXD)

學校 : 康橋雙語學校
編號 : 158065
來源 : [24.147.249.5]
最後登入時間 :
2024-12-19 10:42:57
h084. 4. 牆上海報 -- 2022年1月APCS | From: [220.136.108.53] | 發表日期 : 2024-06-03 10:15

將所有的高度都存放到一個陣列中,裡面不能有重複的高度。進行排序後使用二分搜尋法去取出現在要判斷的高度。

取到現在要判斷的高度後,先從第一塊海報開始判斷,如果有連續且高度 >= 判斷高度的木板,則代表這塊海報放得上去,從下一塊木板開始判斷下一張海報。如果放不上去的話就是從下一塊木板開始判斷目前這張海報。

如果所有海報都能放到目前的高度,就先將目前的高度設定為 ans,並且下一次的二分搜尋往右邊找,反之就往左邊找。當二分搜尋終止時需要再判斷一次最高高度的木板是否可以放得下海報因為二分搜不會跑到最後一個位置。

 

範例程式碼

 
ZeroJudge Forum