Cấp nước cho các làng
Đề bài
Mô tả
Có ngôi làng đánh số từ đến , hiện chưa làng nào có nước sạch. Để cấp nước cho làng , có thể khoan một giếng ngay tại làng với chi phí . Ngoài ra có phương án đặt ống nước, phương án thứ đặt một đường ống nối làng với làng với chi phí ; nước chảy được theo cả hai chiều của ống.
Một làng có nước sạch nếu tại làng đó có giếng, hoặc từ làng đó đi theo các đường ống đã đặt (có thể qua nhiều làng khác) tới được một làng có giếng. Hãy tìm tổng chi phí nhỏ nhất để mọi làng đều có nước sạch.
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên , .
- Dòng thứ hai chứa số nguyên .
- dòng tiếp theo, dòng thứ chứa ba số nguyên ().
Dữ liệu ra
In ra tổng chi phí nhỏ nhất.
Ràng buộc
- ,
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 3 9 9 9 1 2 2 2 3 2 3 4 8 1 4 10 |
15 | Khoan giếng ở làng (chi phí ), đặt các ống , , (chi phí ). |
| 3 2 1 1 10 1 2 100 2 3 5 |
7 | Khoan giếng ở làng và làng , đặt ống . Đặt ống đắt hơn nhiều so với khoan thêm một giếng. |
Bình luận