DHBB 2017 - CHVT - 10 - Đường đi ngắn nhất

Xem dạng PDF

Gửi bài giải

Điểm: 0,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 1G
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Output Only, Pascal, PyPy, Python, Scratch, TEXT

Trong trường hợp đề bài hiển thị không chính xác, bạn có thể tải đề bài tại đây: Đề bài

Sau một thời gian dài xung đột, 2 bộ tộc Yama và Chacha đã quyết định xóa bỏ mọi mâu thuẫn, quay trở lại sống hòa thuận như xưa. Để bắt đầu cho một giai đoạn mới, người dân 2 bộ tộc cùng nhau xây một con đường nối 2 vùng lãnh thổ với nhau. Bài toán đặt ra là con đường nào ngắn nhất?

Có thể coi lãnh thổ của 2 bộ tộc nằm trong một bảng các ô vuông. Mỗi bộ tộc sở hữu một tập các ô vuông liên thông (có thể đi đến nhau qua các ô vuông chung cạnh trong tập). Ban đầu không có 2 ô vuông nào thuộc 2 bộ tộc có cạnh chung. Con đường cần xây sẽ phải bao gồm một số ô vuông liên thông với nhau và có một ô vuông kề cạnh với một ô vuông thuộc bộ tộc Yama, một ô kề cạnh với một ô vuông thuộc bộ tộc Chacha. Hãy tìm con đường chiếm ít ô vuông nhất.

Yêu cầu: Tìm số lượng ô vuông ít nhất cần chiếm để nối hai vùng lãnh thổ.

Input

  • Dòng 1: ghi 2 số nguyên ~M, N~ (~1 \le M, N \le 50~) là số dòng và cột của bản đồ.
  • ~M~ dòng tiếp: mỗi dòng ghi ~N~ kí tự mô tả một dòng của bản đồ, kí tự ‘.’ thể hiện ô trống, kí tự ‘X’ thể hiện ô thuộc sở hữu của một bộ tộc. Các kí tự ‘X’ đảm bảo sẽ hình thành 2 vùng liên thông.

Output

  • Ghi ra số lượng ô vuông ít nhất mà một con đường cần chiếm.

Sample Input 1

6 16
................
..XXXX....XXX...
...XXXX....XX...
.XXXX......XXX..
........XXXXX...
.........XXX....

Sample Output 1

3

Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.