Editorial for Thành phần liên thông
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:
Subtask 1: Với dãy hoán vị , ta tiến hành xây dựng các cạnh của đồ thị và đếm số thành phần liên thông.
Độ phức tạp:
Subtask 2: Ta xây dựng dãy hoán vị là đảo ngược của dãy , cụ thể . Khi đó, giữa hai đỉnh và có cạnh nối khi và chỉ khi và .
Từ đó ta có nhận xét rằng với các chỉ số thỏa mãn tất cả các số từ đến đều xuất hiện ở dãy tiền tố tại sẽ tạo thành một thành phần liên thông. Hay nói cách khác, ta cần đếm các vị trí thỏa mãn:
Độ phức tạp:
Subtask 3: Ta có thể giải quyết bài toán bằng cách xây dựng mảng Tổng tiền tố Prefix Sum kết hợp cấu trúc Segment Tree để cập nhật và đếm số lượng chỉ số .
Độ phức tạp:
Comments