해결한 사람
0
명
정답률
0.00
%
시간 제한
1000
ms
메모리 제한
245
MB
정점이 n개인 루트 트리가 주어진다. 정점에는 1부터 n까지 번호가 매겨져 있으며, 루트는 번호가 1인 정점이다.
각 정점에는 색이 있다. 정점 v의 색을 cv라고 하자. 처음에는 cv = 0이다.
가능한 한 적은 단계로 트리를 주어진 색으로 칠해야 한다. 각 단계에서 정점 v와 색 x를 선택한 다음, v의 부분 트리에 있는 모든 정점(v 자신 포함)을 색 x로 칠할 수 있다. 다시 말해, 루트에서 u까지의 경로가 v를 지나는 모든 정점 u에 대해 cu = x로 설정한다.
각 정점을 0과 다른 색으로 칠해야 함이 보장된다.
루트 트리가 무엇인지는 다음 링크에서 알아볼 수 있다: https://en.wikipedia.org/wiki/Tree_(graph_theory).
첫째 줄에는 하나의 정수 n (2 ≤ n ≤ 104) — 트리의 정점 수가 주어진다.
둘째 줄에는 n - 1개의 정수 p2, p3, ..., pn (1 ≤ pi < i)가 주어진다. 여기서 pi는 정점 i와 pi 사이에 간선이 있음을 의미한다.
셋째 줄에는 n개의 정수 c1, c2, ..., cn (1 ≤ ci ≤ n)가 주어진다. 여기서 ci는 i-th 정점을 칠해야 하는 색이다.
주어진 그래프가 트리임이 보장된다.
트리를 주어진 색으로 칠하기 위해 수행해야 하는 최소 단계 수를 나타내는 하나의 정수를 출력한다.
7
1 1 2 3 1 4
3 3 1 1 1 2 3
56
1 2 2 1 5
2 1 1 1 1 1
3첫 번째 예제의 트리는 그림에 나와 있다(숫자는 정점의 인덱스이다):

첫 번째 단계에서는 정점 1의 부분 트리에 있는 모든 정점을 색 2로 칠한다(숫자는 색이다):

두 번째 단계에서는 정점 5의 부분 트리에 있는 모든 정점을 색 1로 칠한다:

세 번째 단계에서는 정점 2의 부분 트리에 있는 모든 정점을 색 1로 칠한다:

두 번째 예제의 트리는 그림에 나와 있다(숫자는 정점의 인덱스이다):

첫 번째 단계에서는 정점 1의 부분 트리에 있는 모든 정점을 색 3으로 칠한다(숫자는 색이다):

두 번째 단계에서는 정점 3의 부분 트리에 있는 모든 정점을 색 1로 칠한다:

세 번째 단계에서는 정점 6의 부분 트리에 있는 모든 정점을 색 2로 칠한다:

네 번째 단계에서는 정점 4의 부분 트리에 있는 모든 정점을 색 1로 칠한다:

다섯 번째 단계에서는 정점 7의 부분 트리에 있는 모든 정점을 색 3으로 칠한다:
