trang chủ / đề bài / voi07_robot

Robot cứu hỏa

Đề bài

Mô tả

Trên một mạng lưới giao thông có n nút, các nút được đánh số từ 1 đến n và giữa hai nút bất kỳ có không quá một đường nối trực tiếp (đường nối trực tiếp là một đường hai chiều). Ta gọi đường đi từ nút s đến nút t là một dãy các nút và các đường nối trực tiếp có dạng:

s=u1,e1,u2,…,ui,ei,ui+1,…,uk−1,ek−1,uk=t,

trong đó u1,u2,…,uk là các nút trong mạng lưới giao thông, ei là đường nối trực tiếp giữa nút ui và ui+1 (không có nút uj nào xuất hiện nhiều hơn một lần trong dãy trên, j=1,2,…,k).

Biết rằng mạng lưới giao thông được xét luôn có ít nhất một đường đi từ nút 1 đến nút n.

Một robot chứa đầy bình với w đơn vị năng lượng, cần đi từ trạm cứu hoả đặt tại nút 1 đến nơi xảy ra hoả hoạn ở nút n, trong thời gian ít nhất có thể. Thời gian và chi phí năng lượng để robot đi trên đường nối trực tiếp từ nút i đến nút j tương ứng là ti,j và ci,j (1≤i,j≤n). Robot chỉ có thể đi được trên đường nối trực tiếp từ nút i đến nút j nếu năng lượng còn lại trong bình chứa không ít hơn ci,j (1≤i,j≤n). Nếu robot đi đến một nút có trạm tiếp năng lượng (một nút có thể có hoặc không có trạm tiếp năng lượng) thì nó tự động được nạp đầy năng lượng vào bình chứa với thời gian nạp coi như không đáng kể.

Yêu cầu: Hãy xác định giá trị w nhỏ nhất để robot đi được trên một đường đi từ nút 1 đến nút n trong thời gian ít nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa một số nguyên dương n (2≤n≤500).
  • Dòng thứ hai chứa n số, trong đó số thứ j bằng 1 hoặc 0 tương ứng ở nút j có hoặc không có trạm tiếp năng lượng (j=1,2,…,n).
  • Dòng thứ ba chứa số nguyên dương m (m≤30000) là số đường nối trực tiếp có trong mạng lưới giao thông.
  • Dòng thứ k trong số m dòng tiếp theo chứa 4 số nguyên dương i, j, ti,j, ci,j (i≠j; ti,j,ci,j≤10000) mô tả đường nối trực tiếp giữa nút i và nút j, thời gian và chi phí năng lượng tương ứng (như nhau theo cả hai chiều).

Hai số liên tiếp trên một dòng cách nhau ít nhất một dấu cách.

Dữ liệu ra

Ghi ra số nguyên dương w tìm được.

Ràng buộc

  • 2≤n≤500, 1≤m≤30000.
  • 1≤ti,j,ci,j≤10000.
  • Giữa hai nút có không quá một đường nối trực tiếp; luôn có đường đi từ nút 1 đến nút n.

Ví dụ

Input Output Giải thích
4
0 1 1 0
5
1 2 5 4
1 3 4 3
1 4 9 4
2 4 4 1
3 4 5 2
3 Nút 2 và nút 3 có trạm tiếp năng lượng. Ba đường 1→2→4, 1→3→4, 1→4 đều mất thời gian 9 (ít nhất). Chúng cần w lần lượt là max(4,1)=4, max(3,2)=3 và 4.
3
0 0 0
3
1 3 2 7
2 1 2 1
2 3 2 1
7 Đường 1→2→3 chỉ cần w=2 nhưng mất thời gian 4; robot phải đi đường nhanh nhất 1→3 (thời gian 2) nên cần w=7.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0