CSES - Filling Trominos | Lấp đầy tromino

Xem PDF

Điểm: 1800 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Nhiệm vụ của bạn là lấp đầy một lưới \(n \times m\) bằng cách sử dụng L-tromino (ba ô vuông có hình chữ L). Ví dụ: đây là một cách để lấp đầy lưới \(4 \times 6\):

Input

  • Dòng đầu vào đầu tiên chứa một số nguyên \(t\): số lượng test.
  • Sau đó, có \(t\) dòng mô tả các test. Mỗi dòng chứa hai số nguyên \(n\)\(m\).

Output

  • Đối với mỗi test, hãy in YES nếu có giải pháp và NO nếu ngược lại.
  • Nếu có một giải pháp, cũng in \(n\) dòng mà mỗi dòng chứa \(m\) chữ cái giữa A-Z. Các ô vuông liền kề phải có chính xác cùng một chữ cái khi chúng thuộc cùng một tromino. Bạn có thể in bất kì giải pháp hợp lệ nào.

Constraints

  • \(1 \leq t \leq 100\)
  • \(1 \leq n \leq m \leq 100\)

Example

Sample input:

2  
4 6  
4 7

Sample output:

YES  
AADDBB  
ACCDEB  
BCAEEC  
BBAACC  
NO


Bình luận


  • -3
    vanphukhang_0604    8:04 p.m. 18 Tháng 8, 2023 chỉnh sửa 2

    CSES - Filling Trominos | Lấp đầy tromino

    Nhiệm vụ của bạn là lấp đầy một lưới \(n \times m\) bằng cách sử dụng các L-tromino (một L-tromino gồm ba ô vuông xếp thành hình chữ L).

    Ví dụ, đây là một cách để lấp đầy lưới \(4 \times 6\):

    Input

    • Dòng đầu tiên chứa một số nguyên \(t \ (1 \leq t \leq 100)\): số lượng test.
    • \(t\) dòng sau đó mô tả các test. Mỗi dòng chứa hai số nguyên \(n\)\(m \ (1 \leq n \leq m \leq 100)\).

    Output

    • Với mỗi test, in YES nếu có cách lấp đầy lưới, ngược lại in NO.
    • Nếu có cách lấp đầy lưới, hãy in thêm \(n\) dòng mô tả lưới sau khi lấp đầy. Mỗi dòng chứa \(m\) chữ cái A-Z. Các ô liền kề phải có chính xác cùng một chữ cái khi chúng thuộc cùng một tromino. Bạn có thể in bất kì cách nào hợp lệ.

    Example

    Test 1

    Input
    2
    4 6
    4 7
    Output
    YES
    AADDBB
    ACCDEB
    BCAEEC
    BBAACC
    NO