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

Sinh Vật Huyền Bí

Đề bài

Mô tả

Giáo sư Rubeus Hagrid Rubeus Hagrid đang nghiên cứu về sự đa dạng di truyền của các sinh vật huyền bí trong Rừng Cấm. Ông đã xây dựng một cây phả hệ di truyền gồm N sinh vật, trong đó mỗi cạnh nối hai sinh vật có một trọng số biểu thị khoảng cách di truyền giữa chúng.

Hagrid muốn chọn ra đúng K sinh vật để thành lập một đàn nuôi mới. Để đảm bảo sự đa dạng di truyền tối đa, ông muốn tổng khoảng cách di truyền giữa tất cả các cặp sinh vật được chọn là lớn nhất có thể.

Khoảng cách di truyền giữa hai sinh vật được tính bằng tổng trọng số các cạnh trên đường đi duy nhất giữa chúng trên cây phả hệ.

Hãy giúp Hagrid Rubeus Hagrid tìm tổng khoảng cách lớn nhất có thể.

Dữ liệu vào

  • Dòng đầu tiên chứa hai số nguyên NK — số sinh vật và số sinh vật cần chọn.
  • N1 dòng tiếp theo, mỗi dòng chứa ba số nguyên u, v, w — mô tả một cạnh nối sinh vật uv với trọng số w.

Dữ liệu ra

In ra một số nguyên duy nhất — tổng khoảng cách di truyền lớn nhất giữa tất cả các cặp sinh vật được chọn.

Ràng buộc

  • 2KN2000
  • 1u,vN, uv
  • 1w106
  • Các cạnh tạo thành một cây (đồ thị liên thông không có chu trình)
  • Kết quả có thể vượt quá 2311

Ví dụ

Input Output Giải thích
5 3
1 2 3
2 3 2
3 4 5
4 5 1
22 Cây là đường thẳng 1-2-3-4-5 với trọng số 3, 2, 5, 1. Chọn 3 sinh vật {1, 3, 5}: d(1,3) = 3+2 = 5, d(1,5) = 3+2+5+1 = 11, d(3,5) = 5+1 = 6. Tổng = 5 + 11 + 6 = 22.
5 3
1 2 4
1 3 7
1 4 2
1 5 6
34 Cây hình sao tâm 1. Chọn {2, 3, 5}: d(2,3) = 4+7 = 11, d(2,5) = 4+6 = 10, d(3,5) = 7+6 = 13. Tổng = 11 + 10 + 13 = 34.

Ghi chú

Trong ví dụ 1, cũng có thể chọn {1, 4, 5} cho cùng tổng 22: d(1,4) = 10, d(1,5) = 11, d(4,5) = 1. Tổng = 10 + 11 + 1 = 22.

Trong ví dụ 2, các sinh vật 3 và 5 có khoảng cách di truyền lớn nhất (7+6=13), và sinh vật 2 cũng cách xa cả hai, nên chọn bộ ba {2, 3, 5} cho tổng lớn nhất.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0