結果
| 問題 |
No.763 Noelちゃんと木遊び
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2023-01-29 02:13:50 |
| 言語 | Python3 (3.13.1 + numpy 2.2.1 + scipy 1.14.1) |
| 結果 |
AC
|
| 実行時間 | 585 ms / 2,000 ms |
| コード長 | 527 bytes |
| コンパイル時間 | 185 ms |
| コンパイル使用メモリ | 12,160 KB |
| 実行使用メモリ | 49,624 KB |
| 最終ジャッジ日時 | 2025-03-22 10:42:04 |
| 合計ジャッジ時間 | 9,961 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| other | AC * 22 |
ソースコード
import sys
sys.setrecursionlimit(10**7)
N = int(input())
tree = [[] for _ in range(N)]
for _ in range(N-1):
u, v = map(lambda x:int(x)-1, input().split())
tree[u].append(v)
tree[v].append(u)
dp = [[0] * N for _ in range(2)]
dp[0] = [1] * N
def dfs(v, p):
for nv in tree[v]:
if nv == p:
continue
dfs(nv, v)
dp[0][v] += max(dp[0][nv]-1, dp[1][nv]) # eraseしない
dp[1][v] += max(dp[0][nv], dp[1][nv]) # eraseする
dfs(0, -1)
print(max(dp[0][0], dp[1][0]))