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

Kết nối các trường đại học

Đề bài

Mô tả

n thành phố được nối với nhau bởi n1 con đường hai chiều, sao cho từ một thành phố bất kỳ đều có thể đi tới mọi thành phố khác. Mỗi con đường có độ dài bằng 1, nên khoảng cách giữa hai thành phố là số con đường trên đường đi ngắn nhất giữa chúng.

Trong số các thành phố này có 2k thành phố chứa trường đại học, mỗi trường nằm ở một thành phố khác nhau.

Cần chia 2k trường đại học thành k cặp, mỗi trường thuộc đúng một cặp, rồi nối hai trường trong mỗi cặp bằng một sợi cáp có độ dài bằng khoảng cách giữa hai thành phố tương ứng.

Hãy tìm tổng độ dài cáp lớn nhất có thể đạt được.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk, số thành phố và số cặp trường đại học.
  • Dòng thứ hai chứa 2k số nguyên phân biệt u1,u2,,u2k, chỉ số các thành phố có trường đại học.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên xjyj, cho biết có con đường nối thành phố xj và thành phố yj.

Dữ liệu ra

In ra một số nguyên duy nhất: tổng khoảng cách lớn nhất khi chia 2k trường đại học thành k cặp.

Ràng buộc

  • 2n200000
  • 1kn/2
  • 1uin, các ui đôi một khác nhau
  • 1xj,yjn
  • Các con đường tạo thành một cây (đồ thị liên thông, không có chu trình)

Ví dụ

Input Output Giải thích
7 2
1 5 6 2
1 3
3 2
4 5
3 7
4 3
4 6
6 Ghép cặp (1,6)(2,5). Khoảng cách từ 1 tới 63 (đường 1346), khoảng cách từ 2 tới 53 (đường 2345), tổng bằng 6. Không có cách ghép nào cho tổng lớn hơn.
9 3
3 2 1 6 5 9
8 9
3 2
2 7
3 4
7 6
4 5
2 1
2 8
9 Một cách ghép tối ưu là (1,5), (3,6)(2,9) với các khoảng cách lần lượt là 3, 3, 3.

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