import sys
sys.setrecursionlimit(50000000)
def read(): return sys.stdin.readline().strip()
def read_int(): return int(read())
def read_ints(): return map(int, read().split())
def buildtr(u, pre):
size[u] = 1
for v in link[u]:
if v == pre: continue
buildtr(v, u)
size[u] += size[v]
f[u] += f[v]
f[u] += size[u]
def dfsdye(u, pre):
global ans
if u != 1:
f[u] = f[pre] + n - 2 * size[u]
ans = max(ans, f[u])
for v in link[u]:
if v == pre: continue
dfsdye(v, u)
n = read_int()
link = [[] for _ in range(n + 1)]
for i in range(n - 1):
u, v = read_ints()
link[u].append(v)
link[v].append(u)
size = [0] * (n + 1)
f = [0] * (n + 1)
buildtr(1, 0)
ans = f[1]
dfsdye(1, 0)
print(ans)
原站给的信息是#1~#29 AC,#30 RE。但是我找不到问题出在哪了qaq,求助