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.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