E题python dfs递归过不了

提示异常退出,是因为python递归上限问题吗?python是不是天生大劣势啊...

https://ac.nowcoder.com/acm/contest/view-submission?submissionId=76241786

from math import inf
from collections import defaultdict


n = int(input())
g = defaultdict(list)
s = 0
for _ in range(n - 1):
    u, v = list(map(int, input().split(" ")))
    g[u].append(v)
    g[v].append(u)
    s += abs(u - v)

ans = inf

def f(node, parent):

    global ans

    children_nodes = [child for child in g[node] if child != parent]
    if not children_nodes:
        return 0

    children_values = [f(child, node) for child in children_nodes]
    to_add = [abs(node - child) for child in children_nodes]

    for i, v in enumerate(children_values):
        edge = to_add[i]
        ans = min(ans, abs(v - (s - edge - v)))

    return sum(children_values) + sum(to_add)

f(1, -1)

print(ans)

全部评论
爆内存的,换成c语言就行了
点赞 回复 分享
发布于 03-10 15:27 河北

相关推荐

码农顶针:估计让你免费辅导老板孩子的学习
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务