아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

クッキーゲーム

시간 제한8초메모리 제한1024 MB

요약
각 정점에 쿠키가 1개 또는 2개 놓인 트리에서 아무 정점에서 시작해 이동하며 쿠키를 하나씩 먹고, 빈 정점으로 이동하면 끝날 때 먹을 수 있는 쿠키 수의 최댓값을 구한다.
난이도

보통10점 중 6점

유형
트리, DFS, 동적 계획법, 그리디
정답자
아직 제출이 없습니다

문제

N 頂点の無向木があり,各頂点には 1 から N までの番号が付けられている.また,各頂点には,1 枚または 2 枚のクッキーが置かれている.

あなたは,この木を使ってゲームを行うことにした.はじめに,あなたは木の頂点を 1 つ選び,その頂点に駒を 1 つ置く.その後,次の行動を,ゲームが終わるまで繰り返す.

  • 現在駒が置かれている頂点にあるクッキーを,1 枚だけ食べる.さらに,現在駒が置かれている頂点に隣接する頂点を 1 つ選び,その頂点に駒を移動させる.移動先の頂点にクッキーが 1 枚も置かれていない場合,その時点でゲームは終了となる.

あなたが最適に行動したとき,ゲーム中,最大で何枚のクッキーを食べることができるだろうか.

입력

入力は 50 個以下のデータセットからなる. 各データセットは次の形式で表される.

N
x1x2...xN
p1
p2
…
pN-1

1 行目には,木の頂点数 N (2 ≤ N ≤ 105) が与えられる.2 行目は 1 または 2 のみからなる N 文字の文字列が与えられる.このうち i 番目の文字 xi は,はじめに頂点 i に置かれているクッキーの枚数を表す.3 行目からの N-1 行には,木の頂点の隣接情報が与えられる.このうち j 行目に与えられる整数 pj (1 ≤ pj ≤ j) は,頂点 j+1 と 頂点 pj が隣接していることを表す.

入力の終わりは 1 つのゼロからなる行で表される.

출력

各データセットに対し,あなたがゲーム中に食べることのできるクッキーの枚数の最大値を,1 行に出力せよ.

예제1

  1. 예제 1

    입력
    2
    11
    1
    5
    12121
    1
    2
    3
    4
    8
    12112211
    1
    2
    1
    3
    2
    5
    6
    5
    12122
    1
    2
    3
    4
    0
    
    예상 출력
    2
    7
    11
    8