만드는 중입니다

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

트리와 쿼리 19

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

요약
각 쿼리는 정점 X의 색을 뒤집은 뒤, 트리에서 흰색 정점 모든 쌍의 LCA 레벨 합을 구합니다.
난이도

보통10점 중 7점

유형
트리, 세그먼트 트리, 수학
정답자
아직 제출이 없습니다

문제

NN개의 정점으로 이루어진 트리가 있다. 트리는 무방향 사이클이 없는 연결 그래프이다. 정점은 11번부터 NN번까지 번호가 매겨져 있고, 모든 정점의 색은 검정색 또는 흰색이다.

아래의 쿼리를 처리하는 프로그램을 작성하시오.

  • XX: XX번 정점의 색을 바꾼다. (흰색은 검정색으로, 검정색은 흰색으로 바뀐다.) 이후 서로 다른 모든 흰색 정점 쌍 (a,b)(a, b)에 대해 LCA(최소 공통 조상)의 레벨의 합을 출력한다.

루트 정점은 11번 정점이다. 루트 정점의 레벨은 00이며, 다른 정점의 레벨은 (부모 정점의 레벨) + 1로 정의한다.

입력

첫째 줄에 정점의 개수 NN과 쿼리의 개수 QQ가 주어진다.

둘째 줄에는 11번부터 NN번 정점의 색을 나타내는 정수 t1,t2,⋯ ,tNt_1, t_2, \cdots, t_N이 주어진다. ti=0t_i = 0이면 검정색이고, ti=1t_i = 1이면 흰색이다.

셋째 줄에는 22번부터 NN번 정점의 부모 정점을 나타내는 자연수 P2,P3,⋯ ,PNP_2, P_3, \cdots, P_N이 주어진다.

다음 QQ개의 줄에는 쿼리를 나타내는 XX가 한 줄에 하나씩 주어진다.

출력

첫째 줄에는 초기 상태의 정답을 출력한다. 둘째 줄부터 QQ개의 줄에 걸쳐 각 쿼리의 정답을 출력한다.

제한

  • 2≤N≤5×1052 \le N \le 5 \times 10^5
  • 1≤Q≤5×1051 \le Q \le 5 \times 10^5
  • 1≤i≤N1 \le i \le N에 대해 0≤ti≤10 \le t_i \le 1
  • 2≤i≤N2 \le i \le N에 대해 1≤Pi<i1 \le P_i < i
  • 1≤X≤N1 \le X \le N

예제3

  1. 예제 1

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

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

    입력
    20 20
    1 0 1 0 1 0 0 1 1 0 0 0 0 1 0 0 0 1 1 0
    1 2 3 4 2 2 1 3 2 4 4 3 3 3 8 14 11 7 7
    5
    12
    19
    5
    10
    18
    17
    13
    10
    5
    5
    13
    10
    4
    11
    8
    14
    13
    19
    15
    
    예상 출력
    26
    16
    26
    21
    33
    39
    26
    38
    51
    44
    31
    44
    32
    38
    53
    71
    71
    55
    70
    79
    97