Bedao Regular Contest 22 - Lấp đầy bàn cờ

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một bàn cờ ~n \times n~, trong đó cho trước một vài ô bị chặn. Các hàng được đánh số từ ~1~ đến ~n~, các cột được đánh số từ ~1~ đến ~n~. Dữ liệu đảm bảo mọi ô trống có thể đi đến các ô trống còn lại thông qua các ô trống kề cạnh. Nhiệm vụ của bạn là xác định xem có thể dùng các viên gạch ~2 \times 1~ để lấp đầy các ô trống không, biết rằng không thể dùng viên gạch để lấp đầy lên các ô bị chặn, các viên gạch không được đè nhau.

Input

Dòng đầu tiên gồm số nguyên dương ~t~ — số lượng testcase của bộ test này (~1 \le t \le 10^5~).

Trong mỗi testcase, gồm:

  • Dòng đầu gồm hai số ~n~ và ~m~ (~2 \le n \le 5000, 0 \le m \le 25 \cdot 10^6~).

  • Mỗi dòng trong ~m~ dòng tiếp theo chứa một cặp ~x_i~ ~y_i~ là tọa độ của ô bị chặn (~1 \le x_i, y_i \le n~).

Đảm bảo rằng tổng các ~n~ trong ~t~ testcase không quá ~5000~.

Output

Ứng với mỗi testcase, in ra "YES" nếu tồn tại một cách lấp đầy bàn cờ, ngược lại in ra "NO".

Scoring

Subtask Điểm Ràng buộc
~1~ ~20 \%~ ~m = 0~
~2~ ~20 \%~ ~n \le 4~
~3~ ~60 \%~ Không có ràng buộc gì thêm

Sample Input 1

3
4 0
3 2
3 3
3 3
2 3
1 1
1 2
2 2

Sample Output 1

YES
YES
NO

Bình luận

Hãy đọc nội quy trước khi bình luận.


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