USACO 2026 - Point Elimination

Xem PDF



Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2400 (p) Thời gian: 4.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Bạn có \(N\) (\(2\le N\le 10^5\), \(N\) chẵn) điểm \((x_i,y_i)\) (\(1\le x_i,y_i\le 10^6\)) trên một mặt phẳng tọa độ hai chiều vô hạn.

Bạn có thể thực hiện hai loại thao tác sau đây bao nhiêu lần tùy ý:

  • Chọn hai điểm kề trực tiếp với nhau (khoảng cách Manhattan bằng \(1\)) và xóa cả hai điểm.
  • Chọn hai điểm bất kỳ và hoán đổi tọa độ \(y\) của chúng. Cụ thể, hai điểm \((a,b)\)\((c,d)\) lần lượt trở thành \((a,d)\)\((c,b)\).

Hãy xác định liệu có thể xóa hết tất cả các điểm trên mặt phẳng hay không. Lưu ý rằng hai điểm có thể nằm tại cùng một tọa độ; chúng vẫn phải được coi là hai điểm khác nhau. Bạn cũng không được trực tiếp xóa hai điểm nằm tại cùng một tọa độ, vì xét theo đúng định nghĩa, chúng không kề trực tiếp với nhau.

Dữ liệu vào

Dòng đầu tiên chứa \(T\) (\(1\le T\le 5000\)), là số lượng bộ test.

Dòng đầu tiên của mỗi bộ test chứa số nguyên \(N\).

\(N\) dòng tiếp theo, mỗi dòng chứa hai số nguyên \(x_i\)\(y_i\).

Đảm bảo tổng \(N\) trên tất cả các bộ test không vượt quá \(5\cdot 10^5\).

Dữ liệu ra

Với mỗi bộ test, in YES hoặc NO trên một dòng mới.

Ví dụ

Ví dụ 1

Input
4
2
1 1
1 1
4
6 10
7 11
8 1
8 1
6
1 2
1 3
1 4
1 5
10 10
11 10
6
1 1
1 1
1 1
1 1
10 10
11 11
Output
NO
YES
YES
NO
Note

Ở bộ test đầu tiên, hai điểm duy nhất trùng nhau nên mọi phép hoán đổi đều không làm thay đổi điều gì. Vì vậy, đáp án là NO.

Ở bộ test thứ hai, ta có thể hoán đổi tọa độ \(y\) của các điểm có tọa độ \(x\)\(6\)\(7\) với hai điểm có tọa độ \(x\)\(8\). Sau đó, ta có thể xóa hai điểm đầu tiên (kề nhau theo phương ngang) và hai điểm cuối cùng (kề nhau theo phương dọc).

Ở bộ test thứ ba, không cần thực hiện phép hoán đổi nào. Ta có thể lần lượt xóa cặp thứ nhất, cặp thứ hai và cặp thứ ba.

Ở bộ test cuối cùng, có thể chứng minh rằng dù hoán đổi các tọa độ \(y\) như thế nào, ta cũng không bao giờ có thể xóa hết các điểm theo từng cặp kề nhau.

Phân nhóm

  • Test 2: \(T\le 1000\), \(N\le 6\).
  • Test 3–5: \(N\le 100\).
  • Test 6–11: Không có ràng buộc bổ sung.

Nguồn

USACO 2026 Contest 3, Silver Division — bài gốc tiếng Anh “Point Elimination”. Tác giả: Alex Pylypenko và Chongtian Ma. https://usaco.org/index.php?page=viewproblem2&cpid=1592

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: