XÂY DỰNG ĐƯỜNG

(buildnd.*)

Một đất nước có \(n\) thành phố được đánh số từ \(1\) tới \(n\)\(n - 1\) con đường hai chiều. Ta có thể du lịch giữa hai thành phố bất kỳ bằng cách đi qua các con đường. Khoảng cách giữa hai thành phố \(x\)\(y\) được xác định là số các con đường cần phải đi qua khi đi từ \(x\) đến \(y\). Các công ty du lịch mong muốn trong một chuyến đi du lịch, khách hàng có thể đi qua càng nhiều thành phố càng tốt. Do vậy, nhà quản lý quyết định phá hủy một con đường và xây dựng mới một con đường khác (vẫn đảm bảo việc đi lại giữa hai thành phố bất kỳ bằng cách đi qua các con đường), với mục đích khoảng cách giữa hai thành phố phải đi qua nhiều con đường nhất là lớn nhất.

Dữ liệu vào:

  • Dòng đầu tiên gồm số nguyên \(n\ (3 \leq n \leq 300000)\), số lượng các thành phố

  • \(n - 1\) dòng tiếp theo, mỗi dòng gồm hai số nguyên \(u\)\(v\), biểu thị con đường hai chiều kết nối thành phố \(u\)\(v\ (1 \leq u,v \leq n)\)

Kết quả: Ghi khoảng cách lớn nhất giữa hai thành phố phải đi qua nhiều con đường nhất

Input Output Giải thích
6
1 2
2 3
2 5
4 5
5 6
5
Ta phá hủy con đường (2,5) và xây mới con đường (3,4). Khi đó khoảng cách lớn nhất giữa hai thành phố 1 và 6 là 5.

Chú ý:

  • 20% số điểm ứng với \(n \leq 100\)

  • 20% số điểm ứng với \(n \leq 3000\)

  • 20% số điểm ứng với \(n \leq 300000\), có nhiều nhất một thành phố thỏa mãn có từ 3 con đường trở lên kết nối với nó

  • 40% số điểm còn không có giới hạn gì thêm

Bạn cần đăng nhập để nộp bài

hpcode.edu.vn
Code tích cực
Trong 24h
  1. sythai (5/8)
  2. npk1605 (5/10)
  3. trungnam (4/4)
Trong 7 ngày
  1. nguyenanhvu (40/64)
  2. khieuquan (35/59)
  3. ngokhang (27/55)
Trong 30 ngày
  1. quechi (85/105)
  2. dangphong3108 (79/125)
  3. kiennhientv (79/179)
Thống kê
AC/Sub: 97887/180710
Pascal: 17121
C++: 130348
Python: 33199
Lượt xem/tải tests: 38905

Lưu Hải Phong - 2020
[email protected]