結果

問題 No.2949 Product on Tree
ユーザー ゼットゼット
提出日時 2024-10-25 21:59:39
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 1,215 ms / 2,000 ms
コード長 902 bytes
コンパイル時間 324 ms
コンパイル使用メモリ 82,388 KB
実行使用メモリ 142,156 KB
最終ジャッジ日時 2024-10-25 22:00:49
合計ジャッジ時間 49,500 ms
ジャッジサーバーID
(参考情報)
judge3 / judge1
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 46 ms
54,256 KB
testcase_01 AC 40 ms
54,800 KB
testcase_02 AC 40 ms
53,932 KB
testcase_03 AC 953 ms
132,140 KB
testcase_04 AC 957 ms
131,036 KB
testcase_05 AC 965 ms
132,008 KB
testcase_06 AC 1,062 ms
128,556 KB
testcase_07 AC 1,022 ms
131,184 KB
testcase_08 AC 1,055 ms
128,336 KB
testcase_09 AC 1,088 ms
130,084 KB
testcase_10 AC 1,064 ms
131,676 KB
testcase_11 AC 1,173 ms
131,580 KB
testcase_12 AC 1,160 ms
131,376 KB
testcase_13 AC 1,169 ms
131,092 KB
testcase_14 AC 1,102 ms
120,748 KB
testcase_15 AC 1,107 ms
121,008 KB
testcase_16 AC 1,107 ms
120,844 KB
testcase_17 AC 1,146 ms
131,132 KB
testcase_18 AC 1,144 ms
131,244 KB
testcase_19 AC 1,110 ms
131,300 KB
testcase_20 AC 1,156 ms
131,584 KB
testcase_21 AC 1,199 ms
131,888 KB
testcase_22 AC 1,110 ms
121,016 KB
testcase_23 AC 961 ms
132,660 KB
testcase_24 AC 975 ms
129,344 KB
testcase_25 AC 1,019 ms
128,560 KB
testcase_26 AC 1,021 ms
128,312 KB
testcase_27 AC 1,064 ms
130,076 KB
testcase_28 AC 1,075 ms
128,052 KB
testcase_29 AC 1,124 ms
130,224 KB
testcase_30 AC 1,143 ms
129,852 KB
testcase_31 AC 1,160 ms
128,192 KB
testcase_32 AC 1,170 ms
128,820 KB
testcase_33 AC 1,159 ms
127,796 KB
testcase_34 AC 1,160 ms
127,780 KB
testcase_35 AC 1,215 ms
127,932 KB
testcase_36 AC 1,133 ms
125,612 KB
testcase_37 AC 1,149 ms
126,652 KB
testcase_38 AC 1,172 ms
126,772 KB
testcase_39 AC 1,163 ms
127,808 KB
testcase_40 AC 1,207 ms
126,976 KB
testcase_41 AC 1,174 ms
125,632 KB
testcase_42 AC 1,163 ms
126,636 KB
testcase_43 AC 273 ms
115,080 KB
testcase_44 AC 278 ms
115,268 KB
testcase_45 AC 341 ms
142,156 KB
testcase_46 AC 297 ms
121,648 KB
testcase_47 AC 242 ms
108,232 KB
testcase_48 AC 307 ms
122,740 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

N=int(input())
A=list(map(int,input().split()))
G=[[] for i in range(N)]
for i in range(N-1):
  a,b=map(int,input().split())
  G[a-1].append(b-1)
  G[b-1].append(a-1)
dist=[-1]*N
dist[0]=0
from collections import deque
S=deque()
S.append(0)
while S:
  x=S.pop()
  for y in G[x]:
    if dist[y]>=0:
      continue
    dist[y]=dist[x]+1
    S.append(y)
L=[]
for i in range(N):
  L.append((dist[i],i))
mod=998244353
dp=[0]*N
result=0
L.sort(reverse=True)
k=pow(2,-1,mod)
for i in range(N):
  x=L[i][1]
  count=0
  p=A[x]
  for y in G[x]:
    if dist[y]<dist[x]:
      continue
    result+=dp[y]*p
    result%=mod
    dp[x]+=dp[y]*p
    dp[x]%=mod
    count+=dp[y]
    count%=mod
  score=0
  for y in G[x]:
    if dist[y]<dist[x]:
      continue
    w=(count-dp[y])*dp[y]
    w%=mod
    w*=A[x]
    w%=mod
    score+=w
    score%=mod
  result+=score*k
  result%=mod
  dp[x]+=A[x]
  dp[x]%=mod
print(result)
0