#691. PATROL2 - Tuần tra 2

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

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 2 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 2 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:

  • Đưa ra một số nguyên d .

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