提出 #3973996


ソースコード 拡げる

from collections import deque

MOD = 10**9 + 7

N = int(input())
G = [[] for i in range(N)]
G0 = [[] for i in range(N)]
for i in range(N-1):
    x, y = map(int, input().split())
    G[x-1].append(y-1)
    G[y-1].append(x-1)

I = []
que = deque([0])
used = [0]*N; used[0] = 1
while que:
    v = que.popleft()
    gv = G0[v]
    I.append(v)
    for w in G[v]:
        if used[w]:
            continue
        gv.append(w)
        used[w] = 1
        que.append(w)
dp = [None for i in range(N)]
for v in reversed(I):
    r0 = r1 = 1
    for w in G0[v]:
        a, b = dp[w]
        r0 = (r0 * (a + b)) % MOD
        r1 = (r1 * a) % MOD
    dp[v] = (r0, r1)
print(sum(dp[0]) % MOD)

提出情報

提出日時
問題 P - Independent Set
ユーザ yaketake08
言語 PyPy3 (2.4.0)
得点 100
コード長 710 Byte
結果 AC
実行時間 822 ms
メモリ 78896 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 20
セット名 テストケース
All 0_00, 0_01, 0_02, 0_03, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15
ケース名 結果 実行時間 メモリ
0_00 AC 171 ms 38384 KiB
0_01 AC 171 ms 38256 KiB
0_02 AC 176 ms 38256 KiB
0_03 AC 177 ms 38256 KiB
1_00 AC 171 ms 38256 KiB
1_01 AC 822 ms 78896 KiB
1_02 AC 710 ms 78128 KiB
1_03 AC 670 ms 78128 KiB
1_04 AC 724 ms 77684 KiB
1_05 AC 734 ms 78384 KiB
1_06 AC 718 ms 76720 KiB
1_07 AC 789 ms 75696 KiB
1_08 AC 810 ms 76592 KiB
1_09 AC 789 ms 76336 KiB
1_10 AC 785 ms 76464 KiB
1_11 AC 778 ms 75952 KiB
1_12 AC 737 ms 75900 KiB
1_13 AC 755 ms 76976 KiB
1_14 AC 784 ms 77104 KiB
1_15 AC 806 ms 77872 KiB