#27012: 解題報告


ck1090758@gl.ck.tp.edu.tw (peienwu)

學校 : 臺北市立建國高級中學
編號 : 128355
來源 : [27.247.166.72]
最後登入時間 :
2021-10-16 11:22:04
g277. 3. 幸運數字 -- 2021年9月APCS | From: [111.241.68.45] | 發表日期 : 2021-09-06 20:27

以區間最小值作為區分點將數列分成兩半,可以利用線段樹找區間最小值,利用迴圈模擬每一次範圍縮小的情況。

不過這一題比較特別,他的區間範圍一定會越來越小,且區間外的數字也就不需要使用到

因此可以將數列做一次排序,從頭開始找,將範圍外的數字剔除。

比起線段樹這種方法實作容易許多

至於挑選左右區間的區間和,則可以透過前綴和 O(1)

時間複雜度: 如果是一個遞增或遞減的序列,則每一次區間大小只會縮減1,加上排序,時間是 O(nlogn)

 
ZeroJudge Forum