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

Đường Đi Chi Phí Nhỏ Nhất

Đề bài

Mô tả

Cho một lưới N×M ô. Bạn xuất phát từ ô (1,1) và muốn đến các ô (xi,yi) theo yêu cầu truy vấn. Từ ô (x,y), bạn có thể thực hiện hai loại di chuyển:

  • Di chuyển sang phải (x,y)(x,y+1): chi phí x2
  • Di chuyển xuống (x,y)(x+1,y): chi phí cy

trong đó cy là chi phí di chuyển xuống ở cột y, cho trước.

Với mỗi truy vấn (xi,yi), hãy tìm chi phí nhỏ nhất để đi từ (1,1) đến (xi,yi).

Dữ liệu vào

  • Dòng 1: hai số nguyên NM
  • Dòng 2: M số nguyên c1,c2,,cM
  • Dòng 3: số nguyên Q — số lượng truy vấn
  • Q dòng tiếp theo: mỗi dòng gồm hai số nguyên xiyi

Dữ liệu ra

In Q dòng, mỗi dòng là chi phí nhỏ nhất cho truy vấn tương ứng.

Ràng buộc

  • 2N109
  • 2M2×105
  • 1cy109
  • 1Q2×105
  • 1xiN, 1yiM
  • Đáp án luôn vừa trong kiểu số nguyên 64-bit

Ví dụ

Input Output Giải thích
5 4
1 100 100 20
20
1 1
2 1
3 1
4 1
5 1
1 2
2 2
3 2
4 2
5 2
1 3
2 3
3 3
4 3
5 3
1 4
2 4
3 4
4 4
5 4
0
1
2
3
4
1
5
11
19
29
2
9
20
35
54
3
13
29
49
69
Chi phí di chuyển xuống ở 4 cột lần lượt là 1,100,100,20. Ví dụ: để đến (5,4) với chi phí 69, đường đi tối ưu là (1,1)(2,1)(3,1)(3,2)(3,3)(3,4)(4,4)(5,4) với tổng chi phí 1+1+9+9+9+20+20=69.

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