#40775: python MLE


a0911566208@gmail.com (Verbal)

學校 : 國立花蓮高級工業職業學校
編號 : 212417
來源 : [111.243.224.127]
最後登入時間 :
2024-09-06 17:05:10
h927. 【…】,窩的超人 -- 第六屆簡單的小競賽 | From: [1.200.160.15] | 發表日期 : 2024-06-12 18:58

本人程式新手 還請大佬提供python解決MLE的修正方法
a,b = input().split()
org = input()
inser = input()
for i in range(len(ins)):
    wd = inser[i]
    if wd == "0":
        org+=wd
    else:
        wd+=org
        org = wd
print(int(org,2)%998244353)

 
#42803: Re: python MLE


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

學校 : 不指定學校
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2024-11-09 20:16:56
h927. 【…】,窩的超人 -- 第六屆簡單的小競賽 | From: [123.192.228.253] | 發表日期 : 2024-10-04 00:26

python 頻繁調用 str + str 會產生很大的開銷,每次使用時都需要 2 倍的記憶體空間保存中間檔案

若需要頻繁的拼接字串時,可以改用 str.join(),占用的記憶體空間比較小,執行效率也比較好

 

當你決定好字串要在哪個位置拼接時,先不急著合併,而是按照順序放到 list 裡面,最後用 str.join() 一口氣全部合併成 1 個,這樣就可以過了

(但其實有效率更好的解法)

 
ZeroJudge Forum