結果

問題 No.1221 木 *= 3
ユーザー H3PO4
提出日時 2022-01-17 11:10:52
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 222 ms / 2,000 ms
コード長 647 bytes
コンパイル時間 209 ms
コンパイル使用メモリ 82,432 KB
実行使用メモリ 109,176 KB
最終ジャッジ日時 2024-11-23 12:44:31
合計ジャッジ時間 5,921 ms
ジャッジサーバーID
(参考情報)
judge1 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 18
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

import sys
from collections import deque
input = sys.stdin.buffer.readline
N = int(input())
A = tuple(map(int, input().split()))
B = tuple(map(int, input().split()))
T = [[] for _ in range(N)]
for _ in range(N - 1):
u, v = (int(x) - 1 for x in input().split())
T[u].append(v)
T[v].append(u)
d = deque([(0, -1)])
dp0 = list(A)
dp1 = [0] * N
dfs_order = []
while d:
v, p = d.pop()
for x in T[v]:
if x == p: continue
dfs_order.append((v, x))
d.append((x, v))
for v, x in reversed(dfs_order):
dp0[v] += max(dp0[x], dp1[x])
dp1[v] += max(dp0[x], dp1[x] + B[v] + B[x])
print(max(dp0[0], dp1[0]))
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0