#31264: python bisect 讓我不想學正統了


abcd950813 (H.)

學校 : 不指定學校
編號 : 194631
來源 : [111.71.214.180]
最後登入時間 :
2025-04-09 15:12:41
f607. 3. 切割費用 -- 2021年1月APCS | From: [42.73.88.54] | 發表日期 : 2022-07-20 19:24

用bisect :

    主要的程式碼 :

    bisect.insort_left(L_list, i[0])
    ans += L_list[bisect.bisect_left(L_list, i[0])+1] - \
        L_list[bisect.bisect_left(L_list, i[0])-1]
 
用正常binary search : 
      
    left = 0
    right = len(L_list)
    while left < right:
        mid = (left+right)//2  
        if L_list[mid] < i[0]:  
            left = mid + 1
        else:
            right = mid
    L_list.insert(left, i[0])
    ans += L_list[left+1] - L_list[left-1]
 
基礎還是比較重要啦, 再import array 取代list應該可以減時間
 
#45204: Re: python bisect 讓我不想學正統了


sam851015@gmail.com (多挖鼻孔有益身心健康)

學校 : 臺中市立惠文高級中學
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-03-11 12:39:29
f607. 3. 切割費用 -- 2021年1月APCS | From: [123.192.228.253] | 發表日期 : 2025-01-25 11:50

實際寫起來也不難,可以參考 python 官方提供的程式碼

github 連結

這個連結是官方文檔 (連結) 第一行給的

 

不過比起自己寫,用 bisect 效率會比較好,因為 bisect 是用 C 寫的

 

 
ZeroJudge Forum