結果
問題 |
No.872 All Tree Path
|
ユーザー |
![]() |
提出日時 | 2025-01-15 23:53:21 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 819 ms / 3,000 ms |
コード長 | 518 bytes |
コンパイル時間 | 2,697 ms |
コンパイル使用メモリ | 81,996 KB |
実行使用メモリ | 345,480 KB |
最終ジャッジ日時 | 2025-01-15 23:53:32 |
合計ジャッジ時間 | 9,560 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 18 |
ソースコード
import sys sys.setrecursionlimit(200050) N = int(input()) UVW = [list(map(int, input().split())) for _ in range(N - 1)] E = [set() for _ in range(N)] D = [0] * N for u, v, w in UVW: u -= 1 v -= 1 E[u].add((v)) E[v].add((u)) dp = [1] * N def dfs(x, p): ret = 1 for y in E[x]: if y != p: ret += dfs(y, x) dp[x] = ret return ret dfs(0, -1) ans = 0 for u, v, w in UVW: u -= 1 v -= 1 m = min(dp[u], dp[v]) ans += w * m * (N - m) ans *= 2 print(ans)