Cổng
Đề bài
Mô tả
Cho một lưới hình chữ nhật kích thước gồm hàng và cột. Mỗi ô của lưới hoặc là ô đá (ký hiệu ) hoặc là ô trống (ký hiệu ). Trong một thao tác, bạn có thể đổi một ô đá thành ô trống hoặc một ô trống thành ô đá.
Một hình chữ nhật con kích thước (gồm hàng và cột) được gọi là một cổng nếu thoả mãn đồng thời các điều kiện sau:
- và .
- Với mọi : ô và ô là ô đá (hai cột biên trái/phải, trừ hai đầu).
- Với mọi : ô và ô là ô đá (hai hàng biên trên/dưới, trừ hai đầu).
- Với mọi và : ô là ô trống (toàn bộ phần bên trong).
- Bốn ô góc , , , có thể là loại bất kỳ.
Nói cách khác: viền của cổng (trừ bốn góc) phải toàn là đá, phần lõi bên trong phải toàn là trống, còn bốn góc thì tuỳ ý. Lưu ý thứ tự kích thước: phải có đúng hàng và cột, không phải hàng và cột.
Hãy tìm số thao tác ít nhất cần thực hiện trên lưới để tồn tại ít nhất một hình chữ nhật con là một cổng.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số bộ dữ liệu.
- Với mỗi bộ dữ liệu:
- Dòng đầu chứa hai số nguyên và .
- dòng tiếp theo, mỗi dòng gồm ký tự hoặc mô tả lưới: ký tự thứ của dòng thứ là nếu ô trống, là nếu ô là đá.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra trên một dòng số thao tác ít nhất để lưới có ít nhất một hình chữ nhật con là cổng.
Ràng buộc
- .
- , .
- Tổng của trên tất cả các bộ dữ liệu không vượt quá .
- Tổng của trên tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 5 4 1000 0000 0110 0000 0001 |
12 | Lưới nhỏ nhất có thể () nên cổng chính là toàn bộ lưới. Cần biến viền (trừ góc) thành đá và lõi thành trống, tổng cộng thao tác. |
| 1 9 9 001010001 101110100 000010011 100000001 101010101 110001111 000001111 111100000 000110000 |
5 | Tồn tại một hình chữ nhật con chỉ cần thao tác để trở thành cổng, ít hơn mọi lựa chọn khác. |
Bình luận