아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

게임의 꽃

시간 제한6초메모리 제한1024 MB

요약
가중치가 있는 트리에서 가중치가 엄격히 증가하는 가장 긴 경로의 길이를 구하고, 가중치를 바꾸는 쿼리마다 그 길이를 출력합니다.
난이도

어려움10점 중 8점

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

문제

여러분은 삼단논법을 아는가? blackking은 잘 알고 있다.

PS는 게임이다. 트리와 쿼리는 PS의 꽃이다. 따라서 트리와 쿼리는 게임의 꽃이다.

- blackking26

NN개의 정점으로 이루어진 트리(무방향 사이클이 없는 연결 그래프)가 있다. 정점은 11번부터 NN번까지 번호가 매겨져 있고, 간선은 11번부터 N−1N-1번까지 번호가 매겨져 있다. ii번 정점에는 정수 가중치 AiA_i가 부여되어 있다.

정점열 v1,v2,⋯ ,vkv_1, v_2, \cdots, v_k에 대해 viv_i와 vi+1v_{i+1} 사이에 간선이 있고 Avi<Avi+1A_{v_i} < A_{v_{i+1}} (1≤i≤k−1)(1 \le i \le k-1)이면, v1,v2,⋯ ,vkv_1, v_2, \cdots, v_k는 길이가 kk인 증가 경로이다.

주어진 트리에서 증가 경로 중 길이가 가장 긴 경로의 길이를 구한 뒤, 아래 쿼리를 처리하는 프로그램을 작성하시오.

  • ii xx: ii번 정점의 가중치 AiA_i를 xx로 바꾼 뒤, 트리에서 증가 경로 중 길이가 가장 긴 경로의 길이를 출력한다.

입력

첫째 줄에 트리의 크기 NN과 쿼리의 개수 MM이 주어진다.

둘째 줄에 각 정점의 가중치 AiA_i가 공백으로 구분되어 주어진다.

이후 N−1N-1개의 줄에 각 간선이 연결하는 두 정점 번호 uu, vv가 주어진다.

이후 MM개의 줄에 쿼리의 정보 ii, xx가 주어진다.

출력

첫 번째 줄에 주어진 트리에서 증가 경로 중 길이가 가장 긴 경로의 길이를 출력한다.

이후 MM개의 줄에 쿼리의 결과를 한 줄에 하나씩 순서대로 출력한다.

제한

  • 1≤N,M≤100,0001 \leq N, M \leq 100,000
  • 1≤Ai≤1091 \leq A_i \leq 10^{9}
  • 1≤u,v≤N1 \leq u, v \leq N
  • 1≤i≤N1 \leq i \leq N
  • 1≤x≤1091 \leq x \leq 10^{9}

예제1

  1. 예제 1

    입력
    5 4
    3 3 5 2 4
    1 2
    1 3
    2 4
    2 5
    1 4
    2 7
    5 8
    1 6
    
    예상 출력
    3
    4
    2
    3
    4