×
解除綁定,重新設定系統帳號的密碼
您的系統帳號 ID:
您的系統帳號:
您的帳號暱稱:
設定新密碼:
設定新密碼:
×
請輸入要加入的「課程代碼」
請向開設課程的使用者索取「課程代碼」
分類題庫
解題動態
排行榜
討論區
競賽區
登入
註冊
發表新討論
#31651: [解題報告] Python 遞迴法(lru_cache)
seer852741@gmail.com
(St418)
學校 : 國立中央大學
編號 : 170226
×
傳送站內訊息
傳給:
主題:
內容:
來源 : [114.24.161.39]
最後登入時間 :
2024-01-05 19:57:56
c463.
apcs 樹狀圖分析 (Tree Analyses)
--
apcs
| From: [220.129.100.13] | 發表日期 : 2022-08-12 15:08
from functools import lru_cache
@lru_cache(maxsize=None)
def getHeight(index):
child = nodeChild[index]
if child:
return max(getHeight(x-1) for x in child) + 1
else:
return 0
n = int(input())
nodeChild = tuple(tuple(map(int, input().split()[1:])) for _ in range(n))
nodeHight = tuple(map(getHeight, range(n)))
print(nodeHight.index(max(nodeHight)) + 1)
print(sum(nodeHight))
@lru_cache(maxsize=None)
python內建的緩存功能
不加的情況下40% 加了之後70%
from sys import setrecursionlimit
setrecursionlimit(1000000)
修改python遞迴深度限制後95%
#19: 5%
RE (SIGSEGV)
記憶體區段錯誤! Segmentation fault (core dumped)
總結來說python不適合做遞迴
但我覺得APCS應該不會出那麼誇張的側資
用緩存裝飾子後應該就能過了(個人猜測)
ZeroJudge Forum