Tập con đoạn thẳng lồng nhau

Đề bài

Mô tả

Cho n đoạn thẳng trên trục số. Đoạn thứ i có hai đầu mút liri, gồm tất cả các điểm x thoả mãn lixri.

Hãy chọn ra một tập con có nhiều đoạn nhất sao cho với mọi cặp đoạn trong tập con đó, hoặc hai đoạn không có điểm chung, hoặc một đoạn nằm hoàn toàn bên trong đoạn còn lại.

Hai đoạn [li;ri][lj;rj] được gọi là không có điểm chung nếu chúng không cùng chứa bất kỳ điểm nào. Ví dụ, cặp [1;2][3;4], cặp [1;3][5;5] là không có điểm chung; trong khi cặp [1;2][2;3], cặp [1;2][2;2] vẫn có điểm chung (điểm 2), nên không được chọn cả hai.

Đoạn [li;ri] nằm trong đoạn [lj;rj] nếu ljlirirj. Ví dụ, các đoạn [2;2], [2;3], [3;4], [2;4] đều nằm trong đoạn [2;4], còn [2;5][1;4] thì không.

Bạn cần trả lời t bộ dữ liệu độc lập.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số bộ dữ liệu.
  • Với mỗi bộ dữ liệu:
    • Dòng đầu chứa số nguyên n: số đoạn thẳng.
    • n dòng tiếp theo, dòng thứ i chứa hai số nguyên liri.

Trong cùng một bộ dữ liệu, không có hai đoạn nào trùng nhau hoàn toàn.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng số đoạn nhiều nhất có thể chọn.

Ràng buộc

  • 1t1000
  • 1n3000
  • 1liri2·105
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 3000.

Ví dụ

Input Output Giải thích
2
4
1 5
2 4
2 3
3 4
5
1 5
2 3
2 5
3 5
2 2
3
4
Bộ 1: chọn [1;5][2;4][2;3]. Không thể lấy thêm [3;4] vì nó cắt [2;3] tại điểm 3.
Bộ 2: chọn [1;5][2;5][3;5] và thêm [2;2], vì [2;2] nằm trong [2;5] và rời hẳn [3;5].
2
3
1 3
2 4
2 3
7
1 10
2 8
2 5
3 4
4 4
6 8
7 7
2
7
Bộ 1: [1;3][2;4] cắt nhau nhưng không lồng nhau, nên nhiều nhất chỉ chọn được 2 đoạn, chẳng hạn [2;4][2;3].
Bộ 2: cả 7 đoạn đã tạo thành một cấu trúc lồng nhau hợp lệ.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0