trang chủ / bài tập / vantreas

Vanya và Kho Báu

Đề bài

Mô tả

Vanya đang ở trong một cung điện được biểu diễn bằng lưới n×m. Mỗi ô chứa đúng một rương, rương ở hàng i cột j có loại aij.

Mỗi rương có loại xp1 chứa một chiếc chìa khóa mở được mọi rương loại x+1. Tất cả rương loại 1 không bị khóa. Có đúng một rương loại p và nó chứa kho báu.

Vanya xuất phát từ ô (1,1) (góc trên trái). Khoảng cách giữa hai ô (r1,c1)(r2,c2)|r1r2|+|c1c2| (khoảng cách Manhattan). Tính tổng quãng đường nhỏ nhất Vanya phải đi để đến được rương loại p.

Vanya phải mở rương theo thứ tự loại tăng dần: trước tiên đến một rương loại 1, rồi một rương loại 2, …, rồi rương loại p. Tại mỗi bước, Vanya có thể di chuyển tự do trên lưới (không có chướng ngại); chỉ cần lượt thăm các rương đúng thứ tự loại.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, p.
  • n dòng tiếp theo, mỗi dòng gồm m số nguyên aij — loại của rương tại ô (i,j).

Dữ liệu ra

In ra một số nguyên — tổng quãng đường nhỏ nhất.

Ràng buộc

  • 1n,m300
  • 1pn·m
  • 1aijp
  • Với mọi x từ 1 đến p, tồn tại ít nhất một rương loại x.
  • Có đúng một rương loại p.

Ví dụ

Input Output Giải thích
3 4 3
2 1 1 1
1 1 1 1
2 1 1 3
5 Đi từ (1,1) đến ô (1,2) (loại 1, 1 bước), rồi sang ô (3,1) (loại 2, 3 bước), rồi đến ô (3,4) (loại 3, 3 bước). Có đường tối ưu khác cho tổng quãng đường bằng 5.
3 3 9
1 3 5
8 9 7
4 6 2
22 p=9, phải đi qua đủ chín loại theo thứ tự 129.
3 4 12
1 2 3 4
8 7 6 5
9 10 11 12
11 Các rương được xếp dạng "rắn" nên đi tuần tự dọc theo đó.

Bình luận

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

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0