K đường (Chọn ĐTQG Phú Thọ 2018-2019 (ngày 2))
Xem dạng PDF
Gửi bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
1.0s
Giới hạn bộ nhớ:
1G
Input:
CKPATHS.INP
Output:
CKPATHS.OUT
Dạng bài
Ngôn ngữ cho phép
C++, Pascal, PyPy, Python
Cho một cây gồm ~n~ nút, các nút được đánh số ~1, 2, \dots, n~, nút ~i~ có trọng số ~a_i~.
Cần chọn ra ~k~ đường đi trên cây thỏa mãn:
- Mỗi đường đi là một đường đi đơn, nghĩa là qua mỗi nút không quá một lần;
- Một đường đi có thể suy biến chỉ gồm một nút;
- Hai đường đi bất kì (trong số ~k~ đường) phải rời nhau, nghĩa là không có nút nào chung;
- Tổng trọng số của tất cả các nút xuất hiện trong ~k~ đường đi là lớn nhất.
Biết ~n~, ~k~ và các thông tin về cây, hãy xác định tổng trọng số lớn nhất đạt được.
Dữ liệu
- Dòng 1: hai số nguyên ~n, k~ (~1 \le k \le n \le 1000~);
- Dòng 2: ~n~ số nguyên ~a_1, a_2, \dots, a_n~ (~|a_i| \le 10^9~);
- Dòng 3, ..., ~n + 1~: mỗi dòng hai số nguyên ~u, v~ thể hiện một cạnh nối hai nút ~u, v~.
Kết quả
- Dòng 1: số nguyên là tổng trọng số lớn nhất đạt được.
Ví dụ
CKPATHS.INP
7 2
3 -10 2 3 2 5 2
1 2
2 3
2 4
4 5
4 6
3 7
CKPATHS.OUT
14
Bình luận