結果

問題 No.2584 The University of Tree
ユーザー hirayuu_ychirayuu_yc
提出日時 2023-11-27 21:22:19
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,750 ms / 3,000 ms
コード長 1,868 bytes
コンパイル時間 381 ms
コンパイル使用メモリ 82,304 KB
実行使用メモリ 261,812 KB
最終ジャッジ日時 2024-09-27 04:42:08
合計ジャッジ時間 39,751 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 44 ms
54,016 KB
testcase_01 AC 45 ms
53,632 KB
testcase_02 AC 44 ms
53,760 KB
testcase_03 AC 44 ms
54,016 KB
testcase_04 AC 56 ms
62,464 KB
testcase_05 AC 56 ms
62,208 KB
testcase_06 AC 57 ms
62,208 KB
testcase_07 AC 57 ms
61,952 KB
testcase_08 AC 56 ms
62,464 KB
testcase_09 AC 56 ms
62,208 KB
testcase_10 AC 56 ms
62,208 KB
testcase_11 AC 56 ms
62,336 KB
testcase_12 AC 58 ms
62,208 KB
testcase_13 AC 56 ms
62,208 KB
testcase_14 AC 55 ms
62,208 KB
testcase_15 AC 56 ms
61,568 KB
testcase_16 AC 56 ms
62,208 KB
testcase_17 AC 55 ms
62,208 KB
testcase_18 AC 54 ms
62,592 KB
testcase_19 AC 56 ms
62,336 KB
testcase_20 AC 56 ms
62,208 KB
testcase_21 AC 55 ms
62,208 KB
testcase_22 AC 807 ms
153,648 KB
testcase_23 AC 918 ms
196,160 KB
testcase_24 AC 635 ms
127,612 KB
testcase_25 AC 725 ms
135,512 KB
testcase_26 AC 497 ms
122,856 KB
testcase_27 AC 827 ms
158,632 KB
testcase_28 AC 505 ms
116,096 KB
testcase_29 AC 364 ms
99,388 KB
testcase_30 AC 1,625 ms
221,564 KB
testcase_31 AC 1,604 ms
226,204 KB
testcase_32 AC 433 ms
110,096 KB
testcase_33 AC 777 ms
226,424 KB
testcase_34 AC 365 ms
115,268 KB
testcase_35 AC 1,586 ms
222,344 KB
testcase_36 AC 1,498 ms
255,180 KB
testcase_37 AC 1,629 ms
209,444 KB
testcase_38 AC 1,521 ms
210,244 KB
testcase_39 AC 1,593 ms
245,400 KB
testcase_40 AC 1,629 ms
241,928 KB
testcase_41 AC 1,556 ms
226,492 KB
testcase_42 AC 1,750 ms
223,200 KB
testcase_43 AC 1,649 ms
222,476 KB
testcase_44 AC 1,601 ms
222,344 KB
testcase_45 AC 1,658 ms
222,244 KB
testcase_46 AC 726 ms
227,348 KB
testcase_47 AC 1,349 ms
261,812 KB
testcase_48 AC 621 ms
128,844 KB
testcase_49 AC 1,379 ms
198,312 KB
testcase_50 AC 1,274 ms
177,632 KB
testcase_51 AC 680 ms
135,252 KB
testcase_52 AC 382 ms
104,664 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

from collections import deque
MOD=998244353
N=int(input())
gr=[]
road=[[] for i in range(N-1)]
for i in range(N):
    C,*E=list(map(int,input().split()))
    gr.append(E)
    for j in E:
        road[j-1].append(i)
ser=[{} for i in range(N)]
for i in range(N):
    for j,k in enumerate(gr[i]):
        if road[k-1][0]==i:
            gr[i][j]=road[k-1][1]
        else:
            gr[i][j]=road[k-1][0]
        ser[i][gr[i][j]]=j
dp=[[-1]*len(gr[i]) for i in range(N)]
top=[]
vert=deque([(0,0,-1)])
while len(vert)>0:
    st,pos,bef=vert.pop()
    if st==0:
        top.append(pos)
        vert.append((1,pos,bef))
        for i in gr[pos]:
            if i!=bef:
                vert.append((0,i,pos))
    else:
        if bef==-1:
            continue
        prod=pos+1
        ret=0
        for i in range(ser[pos][bef]+1,len(gr[pos])):
            ret+=dp[pos][ser[pos][gr[pos][i]]]*prod
            prod*=pos+1
            ret%=MOD
            prod%=MOD
        ret+=prod
        prod*=pos+1
        for i in range(ser[pos][bef]):
            ret+=dp[pos][ser[pos][gr[pos][i]]]*prod
            prod*=pos+1
            ret%=MOD
            prod%=MOD
        dp[bef][ser[bef][pos]]=ret
for i in top:
    lf=[0]
    ri=[0]
    rev=pow(i+1,-1,MOD)
    prod=i+1
    for j in dp[i]:
        lf.append(lf[-1]+j*prod)
        prod*=i+1
        prod%=MOD
        lf[-1]%=MOD
    prod=rev
    for j in reversed(dp[i]):
        ri.append(ri[-1]+j*prod)
        prod*=rev
        prod%=MOD
        ri[-1]%=MOD
    cul=-2
    cur=0
    prod=i+1
    for j in reversed(gr[i]):
        dp[j][ser[j][i]]=prod+(lf[cul]+ri[cur])*prod
        dp[j][ser[j][i]]%=MOD
        prod*=i+1
        prod%=MOD
        cur+=1
        cul-=1
for i in range(N):
    ans=0
    prod=i+1
    for j in dp[i]:
        ans+=j*prod
        ans%=MOD
        prod*=i+1
        prod%=MOD
    print(ans)
0