Nộp bài | Các bài nộp | Làm tốt nhất | Về danh sách bài |
C11TOUCH - Bảng ô vuông |
Cho bảng N x N (N ≤ 14). Mỗi ô là 1 số 0 hoặc 1. Một phép Touch(i, j) cho phép đổi ngược giá trị của ô (i, j) - hàng i, cột j - và các ô kề cạnh (nếu có) từ 0 thành 1 và từ 1 thành 0. Trạng thái đích là trạng thái mà cả bảng đều là 0 hoặc đều là 1.
Yêu cầu: Tìm số bước ít nhất để đến được trạng thái đích. Nếu ko có cách nào in ra -1.
Dữ liệu vào:
- Dòng đầu tiên chứa số N (1 ≤ N ≤ 14).
- N dòng tiếp theo, mỗi dòng chứa N kí tự '0' hoặc '1' mô tả trạng thái của bảng.
Dữ liệu ra:
- 1 số duy nhất là số bước ít nhất để đến được trạng thái đích. Nếu ko có cách nào in ra -1.
Lưu ý:
Có 40% số test có N ≤ 4
Ví dụ:
Input:
3
110
001
100
Output:
4
Giải thích: 4 phép touch cần dùng ở vị trí (1,1), (1,2), (1,3), (2,1).
Được gửi lên bởi: | Hacker7 |
Ngày: | 2012-08-25 |
Thời gian chạy: | 0.400s |
Giới hạn mã nguồn: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Ngôn ngữ cho phép: | Tất cả ngoại trừ: GOSU PERL6 PYPY RUST SED |
Nguồn bài: | virtuspro94 - Sưu tầm |
hide comments
2017-05-21 13:33:40
mấy thanh niên chép code kinh vl |
|
2016-11-03 14:46:34
Code pascal: http://shink.in/gVFSO |
|
2015-09-16 17:19:58
khó thật |
|
2014-08-23 14:37:37 Nắng
trâu thôi Last edit: 2014-08-23 14:37:55 |
|
2013-12-13 13:46:28 Xiao Lang
1 đập AC |
|
2012-09-04 17:37:42 Thỏ con làm bánh
Last edit: 2012-09-04 17:37:59 |