Các trò chơi chiến thuật theo lượt như Advance Wars, Wargroove và Fire Badge được tạo thành từ một lưới vuông có địa hình khác nhau với các đơn vị thuộc các lớp chuyển động khác nhau đòi hỏi chi phí khác nhau cho từng loại địa hình. Chúng tôi sẽ điều tra một tập hợp con của vấn đề đó.
Thử thách
Nhiệm vụ của bạn là xác định xem một địa điểm có thể tiếp cận được từ một địa điểm khác với một chi phí địa hình và tốc độ di chuyển hay không.
Các đơn vị chỉ có thể di chuyển trực giao trong đó chi phí di chuyển lên một hình vuông là giá trị của ô tương ứng trên lưới (di chuyển ra là miễn phí). Chẳng hạn, việc di chuyển từ một ô có giá trị 3 lên một ô có giá trị 1 chuyển động 1, nhưng đi theo cách khác đòi hỏi 3. Một số ô vuông có thể không truy cập được.
Thí dụ
1 [1] 1 1 1
1 2 2 3 1
2 3 3 3 4
1 3 <1> 3 4
Di chuyển từ [1]
đến <1>
yêu cầu tối thiểu 7 điểm di chuyển bằng cách di chuyển sang phải một hình vuông và sau đó xuống ba điểm. Do đó, nếu được đưa ra 6 hoặc ít hơn tốc độ di chuyển, bạn nên đưa ra câu trả lời sai lệch.
Ví dụ trường hợp kiểm tra
Chúng sẽ sử dụng các tọa độ không có chỉ mục (hàng, cột) có nguồn gốc từ trên bên trái thay vì các ô được đặt dấu ngoặc để bắt đầu và kết thúc để phân tích cú pháp dễ dàng hơn. Các ô không thể truy cập sẽ được đại diện vớiX
Trường hợp 1a
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (2, 3) to (0, 1)
Output: True
Trường hợp 1b
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 4
From (2, 3) to (0, 1)
Output: False
Trường hợp 1c
1 1 2 1 X
1 2 2 1 1
2 1 1 2 1
X X X 1 2
Speed: 5
From (0, 1) to (2, 3)
Output: False
Trường hợp 2a
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (3, 4) to (2, 1)
Output: True
Trường hợp 2b
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 4
From (3, 4) to (2, 1)
Output: False
Trường hợp 2c
3 6 1 1 X 4 1 2 1 X
5 1 2 2 1 1 1 X 1 5
2 1 1 1 2 1 1 1 X 1
2 1 1 3 1 2 3 4 1 2
1 1 2 1 1 4 1 1 1 2
3 2 3 5 6 1 1 X 1 4
Speed: 7
From (1, 8) to (2, 7)
Output: True
Trường hợp 3a
2 1 1 2
2 3 3 1
Speed: 3
From (0, 0) to (1, 1)
Output: False
Trường hợp 3b
2 1 1 2
2 3 3 1
Speed: 3
From (1, 1) to (0, 0)
Output: True
Quy tắc, giả định và ghi chú
- Các lỗ hổng tiêu chuẩn bị cấm, I / O có thể ở bất kỳ định dạng thuận tiện nào
- Bạn có thể giả sử tọa độ là tất cả trên lưới
- Tốc độ di chuyển sẽ không bao giờ vượt quá 100
- Các ô không thể truy cập có thể được biểu diễn với số lượng rất lớn (ví dụ 420, 9001, 1 triệu) hoặc bằng 0 hoặc null, tùy theo điều kiện nào thuận tiện nhất cho bạn.
- Tất cả các đầu vào sẽ bao gồm các số nguyên dương (trừ khi sử dụng null hoặc 0 để thể hiện các ô không thể truy cập)