Submission #3973996


Source Code Expand

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)

Submission Info

Submission Time
Task P - Independent Set
User yaketake08
Language PyPy3 (2.4.0)
Score 100
Code Size 710 Byte
Status AC
Exec Time 822 ms
Memory 78896 KiB

Judge Result

Set Name All
Score / Max Score 100 / 100
Status
AC × 20
Set Name Test Cases
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
Case Name Status Exec Time Memory
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