Editorial for Chạy bộ
Remember to use this editorial only when stuck, and not to copy-paste code from it. Please be respectful to the problem author and editorialist.
Submitting an official solution before solving the problem yourself is a bannable offence.
Submitting an official solution before solving the problem yourself is a bannable offence.
Author:
Tóm tắt bài toán:
- Cho một cây bao gồm đỉnh và cạnh. Đếm số lượng đường đi dài nhất trên cây đã cho.
Nhận xét:
- Chọn một đỉnh bất kỳ để làm gốc của cây.
- Xét đỉnh và cây con gốc :
- Xét một đỉnh bất kỳ nằm trong cây con gốc , tập các đường đi bắt đầu từ đỉnh sẽ bao gồm đường đi .
- Xét hai đỉnh , bất kỳ nằm ở hai nhánh khác nhau của cây con gốc , tập các đường đi đi qua sẽ bao gồm đường đi .
- Tập tất cả các đường đi trong cây ban đầu là hợp của tất cả tập các đường đi chứa đỉnh trong cây con gốc .
- Và với , tức hai tập đường đi bất kỳ không chứa hai đường đi giống nhau.
- Như trong hình trên, giả sử ta chọn đỉnh là đỉnh gốc của cây.
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- .
- .
- .
- .
- .
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- .
- .
- .
- .
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- .
- .
- .
- .
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- .
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- .
- Tập các đường đi chứa đỉnh trong cây con gốc là:
- Tập tất cả đường đi trên cây ban đầu là hợp của tất cả tập các đường trên, tức là .
- Và với .
Thuật toán:
- Từ nhận xét trên, ta chỉ cần đếm số lượng đường đi dài nhất trong các tập .
- Để thực hiện bài toán trên, ta sử dụng kỹ thuật quy hoạch động trên cây như sau:
- Gọi là độ sâu tối đa của cây con gốc và là số lượng đường đi bắt đầu từ đỉnh trong có độ dài bằng .
- Ta có thể tính các giá trị và bằng DFS trong độ phức tạp .
- Với mỗi đỉnh :
- Nếu chỉ có một nhánh thì độ dài và số lượng đường đi dài nhất trong là và .
- Nếu có hai nhánh trở lên thì độ dài đường đi dài nhất trong là với , là hai đỉnh con trực tiếp bất kỳ của . Với trường hợp này, ta có thể tính toán độ dài và số lượng đường đi dài nhất trong độ phức tạp hoặc với là số lượng đỉnh con trực tiếp của .
- Độ phức tạp: hoặc .
Comments