trang chủ / bài tập / maxsubgr

Đồ thị con trọng số lớn nhất

Đề bài

Mô tả

Cho một đồ thị vô hướng đơn (không có khuyên, không có cạnh bội) gồm n đỉnh và m cạnh.

Đỉnh thứ i có trọng số ai, cạnh thứ i có trọng số wi.

Một đồ thị con là một cặp gồm một tập đỉnh S và một tập cạnh T, thoả mãn: mọi cạnh trong T đều có cả hai đầu mút nằm trong S.

Trọng số của một đồ thị con bằng tổng trọng số các cạnh trong T trừ đi tổng trọng số các đỉnh trong S.

Hãy tìm trọng số lớn nhất của một đồ thị con của đồ thị đã cho. Đồ thị con rỗng (không chọn đỉnh nào, không chọn cạnh nào) cũng hợp lệ và có trọng số 0.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: số đỉnh và số cạnh của đồ thị.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: trọng số các đỉnh.
  • m dòng tiếp theo, dòng thứ i chứa ba số nguyên vi, ui, wi: cạnh thứ i nối hai đỉnh viui, có trọng số wi.

Dữ liệu ra

Một số nguyên duy nhất: trọng số lớn nhất của một đồ thị con.

Ràng buộc

  • 1n103, 0m103
  • 1ai109
  • 1vi,uin, viui
  • 1wi109
  • Đồ thị không có khuyên và không có cạnh bội.

Ví dụ

Input Output Giải thích
4 5
1 5 2 2
1 3 4
1 4 4
3 4 5
3 2 2
4 2 2
8 Chọn tập đỉnh {1,3,4} cùng cả ba cạnh nằm trọn trong tập này: (4+4+5)(1+2+2)=8. Đỉnh 2 quá đắt (a2=5) so với hai cạnh 2 mà nó mang lại.
3 3
9 7 8
1 2 1
2 3 2
1 3 3
0 Tổng trọng số mọi cạnh là 6, trong khi đỉnh rẻ nhất đã có giá 7. Mọi tập đỉnh khác rỗng đều cho trọng số âm, nên đồ thị con tối ưu là đồ thị rỗng.
3 3
7 7 7
1 2 10
2 3 10
1 3 10
9 Chọn cả ba đỉnh và cả ba cạnh: 3021=9. Nếu chỉ chọn hai đỉnh thì được 1014<0, nên phải lấy cả tam giác mới có lãi.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0