만드는 중입니다

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

트리

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

요약
루트가 있는 트리에서 간선 삭제와 연결 여부 질의가 순서대로 주어질 때, 각 질의마다 경로 존재 여부를 YES 또는 NO로 답한다.
난이도

보통10점 중 6점

유형
유니온 파인드, 트리, DFS, 구현
정답자
아직 제출이 없습니다

문제

트리 T는 정점과 에지로 이루어진다. 정점은 원으로 그리고, 두 정점을 잇는 선을 에지라고 한다. 가장 위에 있는 정점을 루트라고 하며 루트는 오직 하나다. 정점 N개에는 1부터 N까지 번호를 붙이고, 루트는 항상 1번이다.

두 정점 v와 w를 잇는 경로는 정점의 순서 목록 (v0,v1,…,vm)(v_0, v_1, \dots, v_m)이다. 여기서 v0=vv_0 = v, vm=wv_m = w이고 viv_i와 vi+1v_{i+1}은 에지로 이어져 있다. 트리에서는 임의의 두 정점 사이에 경로가 정확히 하나 존재한다. 그림 1에서 정점 3과 정점 11을 잇는 유일한 경로는 (3, 4, 1, 7, 11)이다.

그림 1

정점 v에서 루트까지 가는 유일한 경로를 P라고 하자. v와 에지로 이어진 정점 중에서 P 위에 있는 정점을 v의 부모 정점이라고 한다. 그림 1에서 4, 7, 9의 부모 정점은 1이고, 2와 11의 부모 정점은 7이다.

에지 하나를 제거하면 그 에지의 양 끝 정점뿐 아니라 다른 정점 쌍 사이의 경로도 함께 끊길 수 있다. 그림 1에서 7과 11 사이의 에지를 제거하면 8과 5를 잇는 경로가 사라진다.

트리 정보가 주어지고, 에지 제거와 질의가 임의의 순서로 섞여 주어진다. 작업을 주어진 순서대로 수행하면서 각 질의의 답을 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 트리의 정점 개수 N과 질의 개수 Q가 주어진다 (1≤N,Q≤2000001 \le N, Q \le 200000).

다음 N-1개 줄 중 i번째 줄에는 정점 i+1의 부모 정점 번호 a가 주어진다 (1≤a≤N1 \le a \le N).

그다음 (N-1)+Q개 줄에 작업이 주어진다. 이 중 N-1개는 (1)의 형태이고, Q개는 (2)의 형태다.

(1) 두 정수 x와 b가 주어진다 (x=0x = 0, 2≤b≤N2 \le b \le N). b와 b의 부모 정점을 잇는 에지를 제거한다는 뜻이다. 각 줄의 b는 모두 다르다.

(2) 세 정수 x, c, d가 주어진다 (x=1x = 1, 1≤c,d≤N1 \le c, d \le N). c와 d를 잇는 경로가 있는지 묻는 질의다.

출력

질의마다 한 줄씩, 주어진 순서대로 답을 출력한다. 경로가 있으면 YES를, 없으면 NO를 출력한다.

예제6

  1. 예제 1

    입력
    3 3
    1
    1
    1 2 3
    0 3
    1 2 3
    1 1 2
    0 2
    
    예상 출력
    YES
    NO
    YES
    
  2. 예제 2

    입력
    11 5
    7
    4
    1
    9
    11
    1
    11
    1
    3
    7
    0 11
    1 8 5
    1 3 9
    0 10
    0 9
    0 7
    1 2 7
    0 5
    1 1 10
    0 8
    0 6
    0 2
    1 1 3
    0 3
    0 4
    
    예상 출력
    NO
    YES
    YES
    NO
    YES
    
  3. 예제 3

    입력
    1 1
    1 1 1
    
    예상 출력
    YES
    
  4. 예제 4

    입력
    2 3
    1
    1 1 2
    0 2
    1 1 2
    1 2 2
    
    예상 출력
    YES
    NO
    YES
    
  5. 예제 5

    입력
    6 6
    1
    2
    3
    4
    5
    1 1 6
    0 4
    1 1 6
    1 5 6
    0 6
    1 5 6
    0 2
    1 1 2
    0 3
    0 5
    1 1 1
    
    예상 출력
    YES
    NO
    YES
    NO
    NO
    YES
    
  6. 예제 6

    입력
    6 4
    1
    1
    1
    1
    1
    1 2 3
    0 3
    1 2 3
    0 2
    0 4
    1 5 6
    0 5
    0 6
    1 1 4
    
    예상 출력
    YES
    NO
    YES
    NO