만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

고양이 또는 개

시간 제한3초메모리 제한512 MB

요약
나무 모양 정원에서 고양이, 개, 빈 집이 Q일 동안 바뀔 때마다 고양이와 개가 서로 닿지 못하게 막아야 하는 길의 최소 개수를 구합니다.
난이도

어려움10점 중 8점

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

문제

아들 JOI-kun은 애완동물을 키우는 것을 좋아합니다. 정원에는 1번부터 NN번까지 번호가 붙은 NN개의 오두막(hut)이 있고, 각 오두막에는 애완동물이 최대 한 마리만 있을 수 있습니다. 오두막들은 N−1N-1개의 길로 양방향으로 연결되어 있으며, 임의의 두 오두막 사이는 길을 따라 이동할 수 있습니다.

JOI-kun은 고양이와 개를 키우고 싶지만, 둘이 자주 싸울까 걱정합니다. 각 오두막이 고양이, 개, 애완동물 없음 중 하나의 상태일 때, 정원의 위험도를 다음과 같이 정의합니다. 고양이와 개가 막히지 않은 길을 따라 만나지 못하도록 막아야 하는 길의 최소 개수입니다.

JOI-kun은 QQ일 동안 정원을 사용할 계획을 세웁니다. 처음에는 어느 오두막에도 애완동물이 없습니다. 매일의 계획은 다음 중 하나입니다.

  • cat: 애완동물이 없는 오두막 vv에 새 고양이를 둔다.
  • dog: 애완동물이 없는 오두막 vv에 새 개를 둔다.
  • neighbor: 오두막 vv의 애완동물을 이웃에게 준다(그 뒤 오두막 vv에는 애완동물이 없다).

부모인 여러분은 아들의 계획이 위험한지 확인해야 합니다. 매일 계획을 수행한 뒤의 정원 위험도를 구하세요.

입력

첫 줄에 NN이 주어집니다. i+2i+2번째 줄(0≤i≤N−20 \le i \le N-2)에는 AiA_i와 BiB_i가 주어지며, 오두막 AiA_i와 오두막 BiB_i 사이에 길이 있다는 뜻입니다. 서로 다른 임의의 두 오두막은 길을 따라 이동할 수 있다고 보장됩니다.

다음 줄에는 QQ가 주어집니다. N+2+jN+2+j번째 줄(0≤j≤Q−10 \le j \le Q-1)에는 TjT_j와 vjv_j가 주어집니다. j+1j+1일째 계획은 Tj=1T_j=1이면 cat, Tj=2T_j=2이면 dog, Tj=3T_j=3이면 neighbor이며, 대상은 오두막 vjv_j입니다.

출력

jj를 00부터 Q−1Q-1까지 차례로, j+1j+1일째 계획을 수행한 뒤의 위험도를 한 줄에 하나씩 출력합니다.

힌트

오두막이 5개이고 길이 4개인 정원을 생각해 봅시다. 길은 오두막 1과 2, 2와 3, 2와 4, 4와 5를 각각 잇습니다.

  1. 먼저 3번 오두막에 고양이, 5번 오두막에 개를 둡니다. 2번과 4번 사이의 길을 막으면 고양이와 개가 만나지 못하므로 이때의 위험도는 1입니다.
  2. 다음으로 2번 오두막에 새 고양이, 1번 오두막에 새 개를 둡니다. 2번과 4번 사이의 길과 1번과 2번 사이의 길을 막으면 만나지 못하므로 위험도는 2입니다.
  3. 마지막으로 2번 오두막의 고양이를 이웃에게 줍니다. 2번과 3번 사이의 길만 막으면 되므로 위험도는 1입니다.

예제2

  1. 예제 1

    입력
    3
    1 2
    2 3
    4
    1 1
    1 3
    2 2
    3 2
    
    예상 출력
    0
    0
    2
    0
    
  2. 예제 2

    입력
    5
    1 2
    2 3
    2 4
    4 5
    5
    1 3
    2 5
    1 2
    2 1
    3 2
    
    예상 출력
    0
    1
    1
    2
    1