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