Tổng đường đi nhỏ nhất trong lưới
Thay vì đếm đường đi, bài này hỏi đường đi nào tốn ít chi phí nhất. Mỗi ô có một chi phí, và
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: cpp-basics, arrays.
Nội dung đề bài
Mô tả bài toán
Thay vì đếm đường đi, bài này hỏi đường đi nào tốn ít chi phí nhất. Mỗi ô có một chi phí, và chi phí của cả đường đi là tổng chi phí các ô đã bước qua, kể cả ô xuất phát và ô đích. Bảng quy hoạch động hai chiều vì thế phải cộng thêm chi phí ô hiện tại sau khi chọn ô trước đó.
Yêu cầu
Cho lưới n hàng, m cột, mỗi ô ghi một số nguyên không âm. Đi từ ô góc trên bên trái tới ô góc dưới bên phải, mỗi bước chỉ được sang phải hoặc xuống dưới. Hãy tìm tổng chi phí nhỏ nhất, tính cả ô đầu và ô cuối.
Quy ước nộp bài
Nộp tệp solution.cpp đọc dữ liệu từ stdin và ghi kết quả ra stdout. Chỉ in một số nguyên trên một dòng, không kèm chữ hay dấu cách thừa.
Input
- Dòng thứ nhất: hai số nguyên n, m (1 <= n, m <= 15).
- n dòng tiếp theo, mỗi dòng m số nguyên là chi phí các ô (0 <= chi phí <= 1000).
Output
- Một số nguyên trên một dòng là tổng chi phí nhỏ nhất.
Ràng buộc
- Chỉ đi sang phải hoặc xuống dưới, không đi chéo.
- Chi phí ô xuất phát và ô đích đều được tính.
- Thời gian cho mỗi bộ dữ liệu là 1 giây.
Ví dụ 1
Input
3 3
1 3 1
1 5 1
4 2 1
Output
7
Ví dụ 2
Input
2 2
1 2
3 4
Output
7
Giải thích
Đường đi 1 -> 3 -> 1 -> 1 -> 1 (sang phải, sang phải, xuống, xuống) có tổng 7, nhỏ nhất có thể. In ra:
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
