結果
問題 | No.763 Noelちゃんと木遊び |
ユーザー |
|
提出日時 | 2023-10-26 19:06:05 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 333 ms / 2,000 ms |
コード長 | 831 bytes |
コンパイル時間 | 498 ms |
コンパイル使用メモリ | 82,192 KB |
実行使用メモリ | 112,052 KB |
最終ジャッジ日時 | 2024-09-25 12:27:26 |
合計ジャッジ時間 | 6,973 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 21 |
ソースコード
from collections import defaultdict, dequen = int(input())G = defaultdict(list)C = [0 for _ in range(n)]for _ in range(n - 1):u, v = map(int, input().split())u -= 1v -= 1G[u].append(v)G[v].append(u)for u in range(n):if C[u] >= 3:for v in G[u]:G[v].remove(u)G[u] = set()C[u] = 0DP = [[0, 0] for _ in range(n)]Stack = [(0, -1, 0)]while Stack:cp, pp, m = Stack.pop()if m == 0:Stack.append((cp, pp, -1))for np in G[cp]:if np == pp:continueStack.append((np, cp, 0))else:for np in G[cp]:if np == pp:continueDP[cp][0] += max(DP[np][0] - 1, DP[np][1])DP[cp][1] += max(DP[np])DP[cp][0] += 1print(max(DP[0]))