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)