Đưa ra một lưới các hướng và một vị trí bắt đầu và kết thúc, xác định số lượng thay thế tối thiểu trong lưới hướng cần được thực hiện để hoàn thành đường dẫn giữa hai điểm. Lưới là hình trụ đôi. Điều này rõ ràng hơn được đưa ra một ví dụ.
Thí dụ
Hãy lấy lưới sau đây làm ví dụ:
>>>>v
>>>><
<<<<<
Chúng ta hãy bắt đầu tại (1, 1)
và kết thúc tại (1, 3)
(nơi tọa độ là (x, y)
hoặc (col, row)
, với hàng trên cùng và cột bên trái 1
). Sau đó, một giải pháp khả thi là thay thế (1, 1)
và (1, 2)
bằng v
, để lưới cuối cùng trông như thế này:
v>>>v
v>>><
<<<<<
Bắt đầu từ (1, 1)
, con đường sẽ dẫn chúng ta đến (1, 3)
. Tuy nhiên, một giải pháp ngắn hơn tồn tại, đó là thay thế (5, 2)
bằng v
, vì vậy lưới cuối cùng là đây:
>>>>v
>>>>v
<<<<<
Bắt đầu từ (1, 1)
, một con đường khá dài dẫn đến (1, 3)
.
Thay thế bất cứ điều gì ở hàng trên cùng với ^
công việc quá (cảm ơn @Spitemaster).
Đầu vào
Đầu vào sẽ bao gồm một lưới hình chữ nhật gồm 4 giá trị có thể, cũng như hai tọa độ. Bạn có thể lấy lưới ở bất kỳ định dạng hợp lý nào; ví dụ: ma trận ký tự hoặc số nguyên, danh sách chuỗi, v.v. Bạn cũng có thể yêu cầu kích thước của lưới. Bạn có thể lấy tọa độ ở bất kỳ định dạng hợp lý nào; ví dụ: cặp số nguyên, số phức, v.v. Bạn có thể chọn lập chỉ mục 0 hoặc 1.
Đầu ra
Đầu ra phải là một số nguyên duy nhất, số lần thay thế lưới tối thiểu cần thiết để đóng đường dẫn từ đầu đến cuối.
Quy tắc và thông số kỹ thuật
- Áp dụng sơ hở tiêu chuẩn
- lưới có dạng hình trụ đôi, có nghĩa là di chuyển từ trên xuống dưới, bên trái từ bên trái đi bên phải, v.v.
Trường hợp mẫu
Các trường hợp mẫu được đưa ra dưới dạng ma trận ký tự và tọa độ 1 chỉ mục.
Trường hợp 1
Đầu vào
>>>>v
>>>><
<<<<<
1 1
1 3
Đầu ra
1
Giải trình
Xem ví dụ.
Trường hợp 2
Đầu vào
<<<<<
v>v>v
>>>>>
1 1
5 3
Đầu ra
1
Giải trình
Bạn có thể thay thế (1, 1)
bằng v
hoặc (2, 1)
bằng v
. Trong trường hợp đầu tiên, bắt đầu từ (1, 1)
, đường dẫn đi thẳng xuống và sau đó đến bên phải đến đích. Trong trường hợp thứ hai, đường dẫn vòng từ trái sang phải, đến (2, 1)
, đi xuống, phải, xuống, và sau đó phải cho đến khi đến đích.
Trường hợp 3
Đầu vào
^^^^^^
><<>>>
vvvvvv
2 2
5 2
Đầu ra
2
Giải trình
Thay đổi tốt nhất là làm cho hàng trung tâm bao quanh bên trái đến điểm; nghĩa là tạo các mục đầu tiên và cuối cùng trong hàng trung tâm <
. Hoặc, làm 2 2
và 3 2
cả hai >
.
Đây là một thử thách chơi gôn , vì vậy mã ngắn nhất sẽ thắng!
><
nó ping pong qua lại (để cả hai vị trí được đặt đến) hoặc nó giống như có một bức tường ở giữa chúng?
^
hoặcv
.