Do hành trình là ràng buộc, do đó bắt buộc ta phải đi con đường tối ưu trên từng đoạn con của hành trình. Dùng dijkstra để tính đường đi ngắn nhất xuất phát từ từng node của đồ thị. Từ đó dễ dàng tính được tổng trên từng đoạn con của hành trình.
Problem
https://vn.spoj.com/problems/VDANGER
https://oj.vnoi.info/problem/VDANGER
Nông dân John đang ở trên một con thuyền nhỏ và đang tìm kiếm kho báu ở 1 trong số N
(1 <= N <= 100
) hòn đảo (đánh số từ 1..N
) ở vùng biển Ca-ri-bò.
Bản đồ kho báu cho John biết John cần phải thực hiện 1 hành trình đi qua đảo A1, A2, … AM
(2 <= M <= 10,000
), bắt đầu từ đảo 1
và kết thúc ở đảo N
trước khi kho báu biến mất. Anh ta có thể đến thăm các đảo khác và thăm bao nhiêu lần tùy thích, miễn là hành trình của ông ta phải chứa dãy A1,..AM
là 1 dãy con (không nhất thiết phải liên tiếp nhau).
John muốn tránh đụng độ cướp biển và biết được mức-độ-bị-cướp (0 <= mức-độ-bị-cướp <= 100,000
) khi đi lại giữa 2 hòn đảo với nhau. Độ nguy hiểm của hành trình của John sẽ là tổng các mức-độ-bị-cướp trên các tuyến đường mà John đi qua.
Hãy giúp John tìm được 1 hành trình ít nguy hiểm nhất để có thể lấy được kho báu.
Dữ liệu
- Dòng 1: 2 số nguyên cách nhau bởi dấu cách:
N
vàM
- Dòng
2..M+1
: Dòngi+1
mô tả chứa 1 số nguyên là đảo thứi
mà John cần phải tới:Ai
- Dòng
M+2..N+M+1
: Dòngi+M+1
chứaN
số nguyên cách nhau bởi dấu cách tương ứng là mức-độ-bị-cướp trên tuyến đường đi giữa đảoi
và đảo1, 2,…N
; đảm bảo số nguyên thứi
luôn là số0
.
Kết quả
- Dòng 1: Độ nguy hiểm nhỏ nhất của hành trình của John.
Ví dụ
Input
3 4
1
2
1
3
0 5 1
5 0 2
1 2 0
Output
7
Giải thích:
Có 3 hòn đảo và bản đồ kho báu yêu cầu John phải thực hiện 1 hành trình tới các đảo như sau: từ đảo 1 tới đảo 2, quay lại đảo 1 và cuối cùng là tới đảo 3. Mức-độ-bị-cướp trên các tuyến đường đã được cho: (1, 2); (2, 3); (3, 1) có độ lớn tương ứng là 5, 2 và 1.
Hành trình có độ nguy hiểm nhỏ nhất là 7. John sẽ đi như sau: 1, 3, 2, 3, 1, 3
. Yêu cầu của bản đồ là phải chứa dãy (1, 2, 1, và 3) và hành trình này thỏa mãn yêu cầu. Chúng ta sẽ tránh đi trên đường nối giữa 2 đảo 1 và 2 vì nó có mức-độ-bị-cướp lớn.
Tutorial
Submission