Editorial for Hai đoạn không giao nhau
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: Ta đơn giản kiểm tra từng cặp với .
Độ phức tạp:
Subtask 2: Ta tiến hành đếm số lượng cặp thỏa mãn đoạn thứ và đoạn thứ là hai đoạn giao nhau.
Với mỗi đoạn , tiến hành đếm số đoạn giao với đoạn . Dễ dàng nhận thấy rằng với , để đoạn giao với đoạn thì phải thỏa mãn , thêm vào đó do nên . Từ đó, ta có thể dễ dàng đếm được số đoạn bằng cách xây dựng mảng với là số lượng đoạn thỏa mãn và .
Độ phức tạp:
Subtask 3: Tượng tự subtask , ta tiến hành đếm số lượng cặp thỏa mãn đoạn thứ và đoạn thứ là hai đoạn giao nhau. Có thể tiến hành bằng kỹ thuật Sweep Line.
- Gọi các sự kiện dưới dạng . Với mỗi đoạn , ta xây dựng hai sự kiện và .
- Sắp xếp các sự kiện theo tăng dần giá trị , nếu có cùng giá trị , sắp xếp ưu tiên sự kiện có nằm trước sự kiện có .
- Duy trì một biến để đếm số đoạn, ban đầu .
- Duyệt qua các sự kiện. Tại sự kiện thứ , nếu thì số đoạn giao với đoạn tạo nên sự kiện là , sau đó tăng giá trị , ngược lại nếu thì giảm giá trị .
Độ phức tạp:
Comments