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

Giảm độ cao

Đề bài

Mô tả

Cho một bảng số nguyên a kích thước n×m. Bạn đang đứng ở ô (1,1) và muốn đi tới ô (n,m). Mỗi bước, bạn chỉ có thể đi từ ô (i,j) sang ô (i+1,j) (xuống) hoặc (i,j+1) (sang phải). Ngoài ra có một ràng buộc: nếu giá trị (độ cao) của ô hiện tại bằng x thì ô đi tiếp theo phải có giá trị bằng đúng x+1.

Trước khi xuất phát, bạn được phép thực hiện một số thao tác. Mỗi thao tác, bạn chọn một ô bất kỳ (i,j) rồi giảm giá trị của ô đó đi 1 (tức là gán ai,j:=ai,j1). Giá trị của ô sau khi giảm có thể nhỏ hơn hoặc bằng 0. Bạn cũng được phép giảm giá trị của ô (1,1).

Hãy tính số thao tác giảm tối thiểu cần thực hiện để tồn tại ít nhất một đường đi hợp lệ từ ô (1,1) tới ô (n,m). Dữ liệu đảm bảo luôn có đáp án.

Bạn phải xử lý t bộ dữ liệu độc lập.

Dữ liệu vào

Dòng đầu chứa một số nguyên t — số bộ dữ liệu.

Với mỗi bộ dữ liệu:

  • Dòng đầu chứa hai số nguyên nm — số dòng và số cột của bảng.
  • n dòng tiếp theo, mỗi dòng chứa m số nguyên; số thứ j trên dòng thứ iai,j.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một dòng chứa một số nguyên — số thao tác giảm tối thiểu cần thực hiện.

Ràng buộc

  • 1t100
  • 1n,m100
  • 1ai,j1015
  • Tổng n trên tất cả các bộ dữ liệu không vượt quá 100.
  • Tổng m trên tất cả các bộ dữ liệu không vượt quá 100.

Ví dụ

Input Output Giải thích
5
3 4
1 2 3 4
5 6 7 8
9 10 11 12
5 5
2 5 4 8 3
9 10 11 5 1
12 8 4 2 5
2 2 5 4 1
6 8 2 4 2
2 2
100 10
10 1
1 2
123456789876543 987654321234567
1 1
42
9
49
111
864197531358023
0
Bộ 1: chọn đường 12371112; phải giảm 54,65,1091110, tổng 9 thao tác. Bộ cuối: bảng 1×1 — không cần đi đâu, đáp án bằng 0.
1
1 1
1000000000000000
0 Bảng 1×1: không cần thao tác nào vì xuất phát đã trùng đích.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0