/
Time Limit: 2 sec / Memory Limit: 1024 MiB
配点: 100 点
問題文
JOI 国には N 個の街があり,街には 1 から N までの番号が付けられている. これらの街の間には N-1 本の道があり,1 から N - 1までの番号が付けられている. 道 i (1 \leqq i \leqq N-1) は街 P_i (P_i \leqq i) と街 i + 1 とを相互に結んでいる. 街 1 からどの街へも何本かの道を通って移動できることが保証されている. また,JOI 国には道に並行する川が N - 1 本あり,川には 1 から N - 1 までの番号が付けられている. 川 i (1 \leqq i \leqq N-1) は道 i と並行しており,街 P_i から街 i + 1 の向きに流れている.
N 個の街にはそれぞれ 1 つずつランプが置いてある. 各ランプには強さが定められている. 街 t (1 \leqq t \leqq N) にあるランプの強さが l であるとき,その街から l 本未満の道を通って到達できる街はこのランプによって照らされている. 最初の時点では,ランプの強さはすべて 0 であり,どの街も照らされていない.
あなたは川下りを 0 回以上の好きな回数行うことが出来る. 川下りは街 1 にいる状態から始めて,まず街 1 にあるランプの強さを 1 増やす. そして,以下の操作を順に繰り返す.
- 川下りを終了するか決める.ただし今いる街から流れる川が存在しないときは必ず終了する.
- 川下りを続ける場合,今いる街から流れる川を 1 つ選び,その川の流れに沿って移動する.移動した先の街のランプの強さを 1 増やす.
川下りを街 t で終了した場合, この川下りにかかるコストは C_t である. あなたは,川下りを 0 回以上の好きな回数行うことで,すべての街がいずれかのランプによって照らされるようにしたい. その上で,川下りにかかるコストの合計を最小化する必要がある.
道とコストの情報が与えられたとき,すべての街がいずれかのランプによって照らされるようにするための川下りにかかるコストの合計の最小値を求めるプログラムを作成せよ.
入力
入力は以下の形式で標準入力から与えられる.
N
P_1 P_2 \cdots P_{N-1}
C_1 C_2 \cdots C_N
出力
標準出力に,すべての街がいずれかのランプによって照らされるようにするための川下りにかかるコストの合計の最小値を 1 行で出力せよ.
制約
- 2 \leqq N \leqq 700.
- 1 \leqq P_i \leqq i (1 \leqq i \leqq N-1).
- 1 \leqq C_t \leqq 10^9 (1 \leqq t \leqq N).
- 入力される値はすべて整数である.
小課題
- (13 点) N \leqq 8.
- (25 点) N \leqq 100.
- (7 点) P_i = 1 (1 \leqq i \leqq N-1).
- (11 点) P_i = i (1 \leqq i \leqq N-1).
- (16 点) すべての i (1 \leqq i \leqq N) に対して,P_j = i となる j (1 \leqq j \leqq N-1) は 2 個以下.
- (28 点) 追加の制約はない.
入力例 1
5 1 2 2 4 10 4 8 9 5
出力例 1
9
1 回目の川下りでは川 1 を選択し,街 2 で川下りを終了する. このとき街 1, 2 にあるランプの強さが 1 増え,コストは 4 である. 2 回目の川下りでは川 1, 3, 4 を選択し,街 5 で川下りを終了する. このとき街 1, 2, 4, 5 にあるランプの強さが 1 増え,コストは 5 である.
操作の後,街 1, 2 にあるランプの強さは 2,街 3 にあるランプの強さは 0,街 4, 5 にあるランプの強さは 1 となる. 街 1, 2, 3, 4 は街 2 にある強さ 2 のランプによって,街 5 は街 5 にある強さ 1 のランプによって照らされる.したがって,これらの操作によりすべての街はいずれかのランプによって照らされる. このときコストの合計は 4 + 5 = 9 である. 9 未満のコストで条件を満たすことはできないため,9 を出力する.
この入力例は小課題 1, 2, 5, 6 の制約を満たす.
入力例 2
9 1 1 1 2 5 5 5 3 100 70 80 90 60 30 40 50 30
出力例 2
90
川 1, 4, 5 を通って街 6 で終了する川下りを 2 回,川 2, 8 を通って街 9 で終了する川下りを 1 回行う. 操作の後,街 1 にあるランプの強さは 3,街 2, 5, 6 にあるランプの強さは 2,街 3, 9 にあるランプの強さは 1,街 4, 7, 8 にあるランプの強さは 0 となる. これらの操作によりすべての街はいずれかのランプによって照らされる. このときコストの合計は 30 \times 2 + 30 = 90 である.90 未満のコストで条件を満たすことはできないため,90 を出力する.
この入力例は小課題 2, 6 の制約を満たす.