Bình vượt mê cung
Xem dưới dạng PDF
Gửi bài giải
Điểm:
10
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Bình đang tìm đường thoát khỏi một mê cung có dạng lưới kích thước \(R \times C\) ô vuông. Các hàng được đánh số từ \(1\) đến \(R\) từ trên xuống dưới, các cột được đánh số từ \(1\) đến \(C\) từ trái qua phải. Ô ở hàng \(i\), cột \(j\) được ký hiệu là \((i, j)\).
Tại mỗi bước, từ ô hiện tại, Bình có thể di chuyển sang một trong bốn ô kề cạnh (chung cạnh). Mê cung gồm hai loại ô:
- Ô trống (ký hiệu là \(.\)): Bình có thể đi vào miễn phí (chi phí bằng \(0\)).
- Ô vật cản (ký hiệu là \(#\)): Bình cần phá hủy vật cản này để đi qua (chi phí bằng \(1\)).
Hãy tìm số lượng vật cản ít nhất cần phá hủy để Bình đi từ ô xuất phát \((1, 1)\) đến ô đích \((R, C)\).
Định dạng đầu vào
- Dòng đầu chứa hai số nguyên \(R\) và \(C\) (\(1 \le R, C \le 1000\)).
- \(R\) dòng tiếp theo, mỗi dòng chứa một chuỗi ký tự độ dài \(C\) mô tả mê cung (chỉ gồm các ký tự \(.\) và \(#\)). Ô \((1, 1)\) và ô \((R, C)\) luôn là \(.\).
Định dạng đầu ra
- Một số nguyên duy nhất là số lượng vật cản tối thiểu cần phá hủy.
Ràng buộc
| Subtask | Tỉ lệ điểm | Ràng buộc |
|---|---|---|
| 1 | 40% | \(R, C \le 50\) |
| 2 | 60% | Không có ràng buộc gì thêm |
Ví dụ
Input:
3 3
.##
.#.
..#
Output:
1
Nhận xét