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)? In YES hoặc NO.

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

Không có ý kiến tại thời điểm này.