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

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

수열과 쿼리 42

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

요약
길이 N인 순열 A에서 각 질의 구간 [l, r]의 가장 긴 증가하는 부분 수열의 길이를 구합니다.
난이도

어려움10점 중 9점

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

문제

길이가 NN인 수열 A1,A2,…,ANA_1, A_2, \ldots, A_N이 주어진다. 수열의 각 원소는 11 이상 NN 이하의 서로 다른 정수이다. 다음 쿼리를 수행하는 프로그램을 작성하시오.

  • l r: (Al,Al+1,…,Ar)(A_l, A_{l+1}, \ldots, A_r)의 최대 증가 부분 수열(LIS, Longest Increasing Subsequence)의 길이를 출력하라.

입력

첫 번째 줄에 수열의 길이 NN과 쿼리의 수 QQ가 주어진다.

이후 QQ개의 줄에 위에서 설명한 것과 같은 쿼리가 주어진다.

출력

각 쿼리에 대해 정답을 한 줄에 출력하라.

제한

  • 1≤N,Q≤100 0001 \leq N, Q \leq 100\,000
  • 1≤l≤r≤N1 \leq l \leq r \leq N
  • 1≤Ai≤N1 \leq A_i \leq N
  • i≠ji \neq j일 경우 Ai≠AjA_i \neq A_j이다.

예제1

  1. 예제 1

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