trang chủ / đề bài / gr11_wells

Cấp nước cho các làng

Đề bài

Mô tả

Có n ngôi làng đánh số từ 1 đến n, hiện chưa làng nào có nước sạch. Để cấp nước cho làng i, có thể khoan một giếng ngay tại làng với chi phí ci. Ngoài ra có m phương án đặt ống nước, phương án thứ j đặt một đường ống nối làng uj với làng vj với chi phí wj; 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 n, m.
  • Dòng thứ hai chứa n số nguyên c1,c2,…,cn.
  • m dòng tiếp theo, dòng thứ j chứa ba số nguyên uj,vj,wj (uj≠vj).

Dữ liệu ra

In ra tổng chi phí nhỏ nhất.

Ràng buộc

  • 1≤n≤5·104
  • 0≤m≤105
  • 1≤ci,wj≤109
  • 1≤uj,vj≤n, uj≠vj

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 1 (chi phí 3), đặt các ống 1−2, 2−3, 3−4 (chi phí 2+2+8).
3 2
1 1 10
1 2 100
2 3 5
7 Khoan giếng ở làng 1 và làng 2, đặt ống 2−3. Đặt ống 1−2 đắt hơn nhiều so với khoan thêm một giếng.

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