#22210: python 求救


howard20060216@gmail.com (Howard)

學校 : 臺北市私立薇閣高級中學
編號 : 106406
來源 : [123.193.171.190]
最後登入時間 :
2024-05-12 15:39:16
b967. 4. 血緣關係 -- 2016年3月apcs | From: [123.192.10.33] | 發表日期 : 2020-08-15 23:18

請問這樣可以嗎?
為什麼會TLE?

def dfs(n, visited, step=0):
    ext = {i for i, s in enumerate(state) if(n in s)} - set(visited)
    # print('\t'*step + f"->STEP[{step}] {n}\t{visited}")
    maxstep = step
    for i in ext:
        maxstep = max(maxstep, dfs(i, visited+[i], step+1))
    return maxstep

while True:
    try:
        N = int(input())
        state = [[] for i in range(N)]
        for _ in range(N-1):
            (p, q)= (int(i) for i in input().split())
            state[p].append(q)
            state[q].append(p)
    except EOFError:
        break
    print(max([dfs(i, [i]) for i in range(N)]))
 
ZeroJudge Forum