#44434: python方法!!!


zhen0718 (umirnco)

學校 : 不指定學校
編號 : 295257
來源 : [125.231.128.36]
最後登入時間 :
2024-12-05 00:06:09
a012. 10055 - Hashmat the Brave Warrior -- UVa10055 | From: [125.231.128.36] | 發表日期 : 2024-12-05 00:05

將執行時間壓縮到 20ms 以下,歡迎看我的解題紀錄==

幾種方法歡迎參考

 

1. 使用 sys.stdin.read 一次性讀取所有輸入,避免調用 input(),使用 sys.stdout.write 輸出結果,避免 print() 的格式處理開銷。

2. 避免使用 split(),直接通過 find() 等字串操作提取數字。

 

 
#44437: Re: python方法!!!


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

學校 : 不指定學校
編號 : 277705
來源 : [123.192.228.253]
最後登入時間 :
2025-02-04 21:30:08
a012. 10055 - Hashmat the Brave Warrior -- UVa10055 | From: [123.192.228.253] | 發表日期 : 2024-12-05 11:35

這題 python 直接開 while True 無限循環

try 到 EOFError 為止

這樣就可以 18ms 了,不需要用到 stdin

如果不行,可能是有多餘的操作

 

模板:

while True:
try:
# 你要做的事情放這
except EOFError:
# 遇到 EOFError 時要做什麼
# 在 zerojudge 通常是直接 break 就可以
# 部分題目可能會要求 EOF 時輸出些什麼東西
 

 

stdin 確實有助於提高 I/O 速度,但僅限資料量足夠大、足夠多時才有差

這題的測資不多 input 不會比較慢

只有那些比較陰間的題目,測資上百上千行,甚至更多的才有明顯差距

 
ZeroJudge Forum