結果
| 問題 |
No.763 Noelちゃんと木遊び
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2022-04-29 13:36:17 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 953 bytes |
| コンパイル時間 | 81 ms |
| コンパイル使用メモリ | 12,800 KB |
| 実行使用メモリ | 43,648 KB |
| 最終ジャッジ日時 | 2024-06-28 20:47:26 |
| 合計ジャッジ時間 | 12,996 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | WA * 21 |
ソースコード
n = int(input())
node = [[] for _ in range(n)] # 隣接リスト
e = []
for i in range(n - 1):
x, y = map(int, input().split())
e.append((x - 1, y - 1))
node[x - 1].append(y - 1)
node[y - 1].append(x - 1)
from collections import deque
mod = 10 ** 9 + 7
p = [-1] * n # p[i] はi の親。根なら-1
q = deque([0]) # 根はどこでも良い
r = [] # トポロジカルソート.根から浅い順番にソートされて入っている
dp = [1] * n
# dfs : トポロジカルソートと葉ノードのdp初期化
while q:
i = deque.popleft(q)
r.append(i)
# print(node[i])
for a in node[i]: # i の子node を探索する
if p[a] != -1:
continue
p[a] = i
node[a].remove(i) # 子への頂点のみを持つ
deque.append(q, a)
for i in r[::-1]: # 葉ノードから順番にdpを埋める
for j in node[i]:
dp[i] = max(dp[j],n-1-dp[j])
print(dp[0])