트리와 쿼리 19
시간 제한5초메모리 제한512 MB
각 쿼리는 정점 X의 색을 뒤집은 뒤, 트리에서 흰색 정점 모든 쌍의 LCA 레벨 합을 구합니다.
문제
개의 정점으로 이루어진 트리가 있다. 트리는 무방향 사이클이 없는 연결 그래프이다. 정점은 번부터 번까지 번호가 매겨져 있고, 모든 정점의 색은 검정색 또는 흰색이다.
아래의 쿼리를 처리하는 프로그램을 작성하시오.
- : 번 정점의 색을 바꾼다. (흰색은 검정색으로, 검정색은 흰색으로 바뀐다.) 이후 서로 다른 모든 흰색 정점 쌍 에 대해 LCA(최소 공통 조상)의 레벨의 합을 출력한다.
루트 정점은 번 정점이다. 루트 정점의 레벨은 이며, 다른 정점의 레벨은 (부모 정점의 레벨) + 1로 정의한다.
입력
첫째 줄에 정점의 개수 과 쿼리의 개수 가 주어진다.
둘째 줄에는 번부터 번 정점의 색을 나타내는 정수 이 주어진다. 이면 검정색이고, 이면 흰색이다.
셋째 줄에는 번부터 번 정점의 부모 정점을 나타내는 자연수 이 주어진다.
다음 개의 줄에는 쿼리를 나타내는 가 한 줄에 하나씩 주어진다.
출력
첫째 줄에는 초기 상태의 정답을 출력한다. 둘째 줄부터 개의 줄에 걸쳐 각 쿼리의 정답을 출력한다.
제한
- 에 대해
- 에 대해