포개어지는 러시아 인형

시간 제한1초메모리 제한128 MB

요약
너비와 높이가 주어진 인형들을 두 차원 모두에서 엄격히 증가하는 사슬들로 나눌 때 필요한 최소 사슬 수를 구한다. 딜워스 정리에 따라 최장 반사슬의 길이와 같다.
난이도

보통10점 중 7점

유형
정렬, 동적 계획법, 이분 탐색, 그리디
정답자
아직 제출이 없습니다

문제

Dilworth는 러시아 목각 인형(마트료시카)을 세계에서 가장 많이 모으는 수집가로, 수천 개를 가지고 있다. 마트료시카는 크기가 서로 다른 속이 빈 나무 인형으로, 가장 작은 인형이 두 번째로 작은 인형 안에 들어가고, 그 인형은 다시 그다음 인형 안에 들어가는 식으로 겹겹이 포개진다.

어느 날 그는 인형들을 다른 방식으로 포개면 서로 떨어진 인형 묶음의 개수를 더 줄일 수 있을지 궁금해졌다. 그렇게 하면 그의 컬렉션이 한층 더 근사해질 것이다.

그는 모든 인형을 풀어헤쳐 각 인형의 너비와 높이를 측정했다. 너비가 w1w_1, 높이가 h1h_1인 인형은 오직 w1<w2w_1 < w_2이고 h1<h2h_1 < h_2일 때에만 너비 w2w_2, 높이 h2h_2인 다른 인형 안에 들어간다. 하나의 인형 안에는 다른 인형을 최대 한 개만 직접 넣을 수 있으므로(그 인형이 또 다른 인형을 품을 수는 있다), 하나로 포개진 묶음에 속한 인형들은 너비와 높이가 모두 순증가하는 사슬을 이룬다.

모든 측정값이 주어질 때, 전체 컬렉션을 조립했을 때 나올 수 있는 서로 떨어진 인형 묶음의 최소 개수를 구하여라.

입력

첫째 줄에 테스트 케이스의 개수 tt (1≤t≤201 \le t \le 20)가 주어진다.

각 테스트 케이스는 인형의 개수 mm (1≤m≤200001 \le m \le 20000)이 적힌 줄로 시작한다. 이어서 2m2m개의 정수 w1,h1,w2,h2,…,wm,hmw_1, h_1, w_2, h_2, \ldots, w_m, h_m이 주어지며, wiw_i와 hih_i는 각각 ii번째 인형의 너비와 높이이다 (1≤wi,hi≤100001 \le w_i, h_i \le 10000). 이 2m2m개의 정수는 한 줄 또는 여러 줄에 걸쳐 공백으로 구분되어 주어질 수 있다.

출력

각 테스트 케이스마다, 전체 컬렉션을 담는 데 필요한 서로 떨어진 인형 묶음의 최소 개수를 한 줄에 하나씩 출력한다.

예제1

  1. 예제 1

    입력
    4
    3
    20 30 40 50 30 40
    4
    20 30 10 10 30 20 40 50
    3
    10 30 20 20 30 10
    4
    10 10 20 30 40 50 39 51
    
    예상 출력
    1
    2
    3
    2