트리의 각 정점에 주 번호가 주어질 때, 주 경계를 지키면서 두 개의 연결된 그룹으로 나눌 수 없게 만들기 위해 필요한 최소 합병 횟수를 구한다.
어려움8트리그래프DFS동적 계획법아직 제출이 없습니다시간 제한3초메모리 제한256 MBJOI합중국에는 N개의 도시가 있어서, 1번부터 N번까지의 번호가 붙어있다. 또한, JOI합중국에는 N−1개의 국도가 있다. i 번째(1≤i≤N−1) 국도는 A_i번 도시와 B_i번 도시를 양방향으로 잇는다. 어떤 두 도시에 대해서도, 국도 몇개를 이용하면 서로 오가는 것이 가능하다.
현재, JOI합중국은 1번부터 K번까지의 번호가 붙어있는 K개의 주로 나뉘어 있다. j번 (1≤j≤N)도시는 S_j번 주에 속한다. 모든 주에는 적어도 하나의 도시가 속해 있다.
JOI합중국의 대통령인 K이사장은, 이 나라가 분열하지 않을까 걱정이 되었다. 다음 조건을 모두 만족하도록 모든 도시를 2개의 그룹 X, Y로 나누는 것이 가능할 때, JOI합중국은 분열가능한 상태라고 말한다.
K이사장은, JOI합중국이 분열가능하지 않은 상태를 만들기 위해, 주를 합병하려고 한다. 한번의 합병은 두개의 주를 골라서 합치는 것을 말한다. 새로운 주는, 기존의 두 주에 속해 있던 도시 들이 속해있다. K이사장은 주를 최소한의 횟수만큼 합병하여 JOI합중국을 분열가능하지 않은 상태로 만들고 싶어한다.
도시와 국도의 위치, 현재 어떤 도시가 어떤 주에 속해있는가에 대한 상태가 주어졌을 때, JOI 합중국이 분열가능하지 않은 상태로 만들기 위한 합병의 최소 횟수를 구하는 프로그램을 작성하여라.
표준 입력에서 다음과 같은 형식으로 주어진다. 모든 값은 정수이다.
N K
A_1 B_1
⋮
A_N−1 B_N−1
S_1
⋮
S_N
JOI합중국을 분열가능하지 않은 상태로 만들기 위한 합병의 최소횟수를 표준 출력의 첫째 줄에 출력하여라.