#1151. PATROL2 - Tuần tra

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

NGUỒN: Contest CSL 2017-2018 Lần 2 (Tháng 1/2018) Day 1

Khu đô thị mới có n tiểu khu đánh số từ 1 đến n\ (3 ≤ n ≤ 10^5) . Có n-1 đường nối các tiểu khu, mỗi đường nối hai tiểu khu khác nhau. Từ một tiểu khu có thể tới tiểu khu khác (trực tiếp hoặc qua các tiểu khu trung gian). Độ dài của mỗi đường xấp xỉ như nhau và coi là bằng 1 . Để đảm bảo an ninh hàng ngày cảnh sát phải đi tuần tra trên tất cả các đường trong khu đô thị, xuất phát từ trụ sở ở tiểu khu 1 và cuối ngày trở về trụ sở. Như vậy mỗi con đường phải đi qua hai lần.

Ví dụ, với n = 8 , độ dài đường đi tuần tra mỗi ngày là 14 .

Để giảm độ dài đường tuần tra mà vẫn đảm bảo cảnh sát ngày nào cũng có mặt ở mỗi tiểu khu ít nhất một lần, chính quyền quyết định mở thêm k đường tắt (k = 1\text{ hoặc }2) , mỗi đường tắt nối hai tiểu khu hoặc nối một tiểu khu với chính nó. Tránh dư luận cho rằng chính quyền ném tiền qua cửa sổ, cảnh sát được lệnh phải đi tuần mỗi ngày đúng một lần trên mỗi đường tắt.

Việc mở đường tắt theo phương án a ), độ dài đường tuần tra sẽ là 11 , với phương án b ) là 10 , còn với phương án c ) là 15 .

Yêu cầu: Cho n, k n-1 cặp tiểu khu xác định các đường hiện có. Hãy xác định độ dài d đường tuần tra nếu đường tắt được mở tối ưu.

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên n k ;
  • Mỗi dòng trong n-1 dòng tiếp theo chứa hai số nguyên a b xác định một con đường.

Dữ liệu ra:

  • Ghi ra một số nguyên d là độ dài đường tuần tra ngắn nhất nếu mở thêm k đường tắt.

Ví dụ:

Dữ liệu vào:
8 1
1 2
3 1
3 4
5 3
7 5
8 5
5 6
Dữ liệu ra:
11

Giới hạn:

  • Trong tất cả các test có 3 ≤ N ≤ 10^5; 1 ≤ K ≤ 2 .
  • 10\% số test có N ≤ 1000, K = 1 .
  • 30\% số test có K = 1.
  • 80\% số test, mỗi làng có số đường trực tiếp tối đa 25 .
  • 90\% số test, mỗi làng có số đường trực tiếp tối đa 150 .