提出 #61433470


ソースコード 拡げる

import sys
sys.setrecursionlimit(2*10**5)
N,M = map(int, input().split())
edge = [[] for i in range(N)]

for i in range(N-1):
    a,b = map(int, input().split())
    a-=1;b-=1
    edge[a].append(b)
    edge[b].append(a)

dp0 = [1] * N

def dfs(now,par):
    res = 1
    for _next in edge[now]:
        if _next == par:
            continue
        dfs(_next,now)
        res *= (dp0[_next]+1) % M
        res %= M

    dp0[now] = res

dfs(0,-1)
ans_l = [1] * N
#exit()
def dfs2(now,par,val):
    l = []
    ans = 1
    for _next in edge[now]:
        if _next == par:
            l.append((val+1)%M)
            ans *= val+1
            ans %= M
        else:
            l.append((dp0[_next]+1)%M)
    accu_l,accu_r = [1],[1]

    for node in l:
        accu_l.append(accu_l[-1]*node%M)
    for node in l[::-1]:
        accu_r.append(accu_r[-1]*node%M)
    ans_l[now] = accu_l[-1]

    for id,_next in enumerate(edge[now]):
        if _next == par:
            continue
        else:
            dfs2(_next,now,accu_l[id]*accu_r[-(id+2)]%M)
dfs2(0,-1,1)
for i in ans_l:
    print(i)







dfs2(0,-1,1)

提出情報

提出日時
問題 V - Subtree
ユーザ N_noa21
言語 Python (CPython 3.11.4)
得点 100
コード長 1165 Byte
結果 AC
実行時間 1116 ms
メモリ 103548 KiB

ジャッジ結果

セット名 All
得点 / 配点 100 / 100
結果
AC × 36
セット名 テストケース
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, 1_16, 1_17, 1_18, 1_19, 1_20, 1_21, 1_22, 1_23, 1_24, 1_25, 1_26, 1_27, 1_28, 1_29, 1_30, 1_31
ケース名 結果 実行時間 メモリ
0_00 AC 10 ms 8832 KiB
0_01 AC 10 ms 8784 KiB
0_02 AC 10 ms 8912 KiB
0_03 AC 10 ms 8784 KiB
1_00 AC 10 ms 8996 KiB
1_01 AC 10 ms 8820 KiB
1_02 AC 1060 ms 74632 KiB
1_03 AC 1116 ms 86676 KiB
1_04 AC 453 ms 31048 KiB
1_05 AC 527 ms 40096 KiB
1_06 AC 486 ms 30488 KiB
1_07 AC 544 ms 39912 KiB
1_08 AC 500 ms 29348 KiB
1_09 AC 573 ms 35704 KiB
1_10 AC 503 ms 28204 KiB
1_11 AC 557 ms 32040 KiB
1_12 AC 504 ms 28024 KiB
1_13 AC 574 ms 30972 KiB
1_14 AC 549 ms 27872 KiB
1_15 AC 631 ms 30988 KiB
1_16 AC 521 ms 27116 KiB
1_17 AC 600 ms 30788 KiB
1_18 AC 585 ms 27256 KiB
1_19 AC 649 ms 30432 KiB
1_20 AC 582 ms 27224 KiB
1_21 AC 618 ms 30716 KiB
1_22 AC 573 ms 27368 KiB
1_23 AC 632 ms 30900 KiB
1_24 AC 586 ms 27480 KiB
1_25 AC 659 ms 31488 KiB
1_26 AC 609 ms 31552 KiB
1_27 AC 668 ms 33600 KiB
1_28 AC 709 ms 47704 KiB
1_29 AC 816 ms 48336 KiB
1_30 AC 945 ms 61392 KiB
1_31 AC 1111 ms 103548 KiB