Dòng Thời Gian Kết Nối
Xem dưới dạng PDF
Gửi bài giải
Điểm:
20
Giới hạn thời gian:
3.0s
Giới hạn bộ nhớ:
256M
đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Kiểu bài tập
Mạng lưới máy chủ của FPTOJ gồm \(N\) máy chủ. Các kết nối giữa máy chủ được thiết lập và cắt đứt liên tục theo thời gian.
Cho biết toàn bộ chuỗi \(Q\) sự kiện theo thứ tự thời gian, hãy trả lời các truy vấn liên thông sau từng sự kiện:
1 u v— Thiết lập kết nối trực tiếp giữa máy chủ \(u\) và \(v\) (đảm bảo chưa có kết nối trực tiếp).2 u v— Cắt đứt kết nối trực tiếp giữa \(u\) và \(v\) (đảm bảo đang tồn tại).3 u v— Hỏi: tại thời điểm hiện tại, máy chủ \(u\) và \(v\) có thể liên lạc với nhau không (tồn tại đường đi)? InYEShoặcNO.
Gợi ý thuật toán: Mỗi cạnh tồn tại trong khoảng thời gian \([l, r]\). Dùng kỹ thuật D&C trên thời gian kết hợp DSU Rollback để xử lý \(O(Q \log Q)\).
Định dạng đầu vào
- Dòng 1: Hai số nguyên \(N\) và \(Q\) (\(1 \le N, Q \le 10^5\)).
- \(Q\) dòng tiếp theo, mỗi dòng là một sự kiện theo định dạng trên.
Định dạng đầu ra
Với mỗi sự kiện loại 3, in YES hoặc NO trên một dòng riêng.
Ví dụ
Input:
4 7
1 1 2
1 2 3
3 1 3
2 2 3
3 1 3
1 1 4
3 1 4
Output:
YES
NO
YES
Giải thích:
- Kết nối 1–2 và 2–3: tồn tại đường 1→2→3.
3 1 3: liên thông →YES.- Cắt đứt 2–3: đỉnh 3 và 4 bị cô lập.
3 1 3: không liên thông →NO.- Kết nối 1–4: tồn tại cạnh trực tiếp 1–4.
3 1 4: liên thông →YES.
Ràng buộc
| Nhóm | \(N\) | \(Q\) |
|---|---|---|
| 1 (30%) | \(\le 10^3\) | \(\le 10^3\) |
| 2 (70%) | \(\le 10^5\) | \(\le 10^5\) |
\(1 \le u, v \le N\). Thao tác 2 u v chỉ xảy ra khi cạnh \((u,v)\) đang tồn tại.
Nhận xét