結果
問題 |
No.3283 Labyrinth and Friends
|
ユーザー |
![]() |
提出日時 | 2025-09-26 22:01:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 146 ms / 2,000 ms |
コード長 | 629 bytes |
コンパイル時間 | 426 ms |
コンパイル使用メモリ | 82,696 KB |
実行使用メモリ | 77,792 KB |
最終ジャッジ日時 | 2025-09-26 22:01:49 |
合計ジャッジ時間 | 4,900 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 45 |
ソースコード
n,S=map(int,input().split()) e=[[] for i in range(n)] p=[0]+list(map(int,input().split())) for i in range(1,n): e[p[i]-1]+=[i] g=[(0,0)]+[tuple(map(int,input().split())) for i in range(1,n)] X=10**15 u=[0]*n v=[0]*n h=[[] for i in range(n)] q=[0] while len(q)>0: s=q[-1] if v[s]==0: v[s]=1 q+=e[s] else: u[s]=g[s][1] h[s]=[X]*(u[s]+1) h[s][g[s][1]]=g[s][0] for t in e[s]: nu=u[s]+u[t] nh=h[s]+[X]*u[t] for i in range(u[s]+1): for j in range(u[t]+1): nh[i+j]=min(nh[i+j],h[s][i]+h[t][j]) h[s]=nh[:] u[s]=nu v[s]=0 q.pop() print(min(h[0][S:]))