trang chủ / đề bài / nypuzzle

Lát domino trên bảng 2 hàng

Đề bài

Mô tả

Cho một bảng hình chữ nhật kích thước 2×n (2 hàng, n cột). Một số ô của bảng bị chặn, các ô còn lại là ô trống.

Hãy kiểm tra xem có thể lát kín toàn bộ các ô trống bằng những quân domino kích thước 2×1 và 1×2 hay không. Mỗi quân domino phủ đúng hai ô trống kề cạnh nhau, hai quân domino không được chồng lên nhau, và không quân domino nào được phủ lên ô bị chặn.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t là số bộ dữ liệu.
  • Mỗi bộ dữ liệu gồm:
    • Dòng đầu chứa hai số nguyên n và m là số cột của bảng và số ô bị chặn.
    • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ri và ci là chỉ số hàng và chỉ số cột của một ô bị chặn. Các ô bị chặn đôi một khác nhau và không nhất thiết được liệt kê theo thứ tự nào.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra trên một dòng riêng:

  • YES nếu có thể lát kín mọi ô trống bằng domino;
  • NO nếu không thể.

Ràng buộc

  • 1≤t≤104
  • 1≤n≤109
  • 1≤m≤2·105
  • 1≤ri≤2, 1≤ci≤n
  • Tổng m trên tất cả các bộ dữ liệu không vượt quá 2·105.

Ví dụ

Input Output Giải thích
3
5 2
2 2
1 4
3 2
2 1
2 3
6 4
2 1
2 3
2 4
2 6
YES
NO
NO
Bộ 1: hai ô bị chặn là (2,2) và (1,4); lát được bằng hai domino dọc và hai domino ngang. Bộ 2: sau khi chặn (2,1) và (2,3), ô (1,1) buộc phải ghép ngang sang (1,2), khi đó (2,2) chỉ còn ghép ngang sang (2,3) nhưng ô này đã bị chặn. Bộ 3: còn lại 8 ô trống nhưng chúng bị chia thành các mảnh không lát kín được.
6
1 1
1 1
1 2
1 1
2 1
2 1
1 1
2 2
1 1
2 2
2 2
1 1
1 2
2 2
1 1
2 1
NO
YES
NO
NO
YES
YES
Sáu bộ dữ liệu trên bảng 2×1 và 2×2. Bộ 1: chặn (1,1) trên bảng 2×1, còn đúng một ô trống nên không lát được. Bộ 2: cả hai ô đều bị chặn, không còn ô trống nào, câu trả lời là YES. Bộ 3: bảng 2×2 chặn (1,1), còn ba ô trống, số lẻ nên không lát được. Bộ 4: chặn hai ô chéo nhau (1,1) và (2,2), hai ô trống còn lại không kề nhau. Bộ 5 và bộ 6: hai ô bị chặn nằm cùng một hàng (tương ứng cùng một cột), hai ô trống còn lại kề nhau nên phủ được bằng một domino.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0