Hệ Thống Quản Lý Nhóm Nghiên Cứu

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Phòng thí nghiệm AI của Đại học FPTU vận hành hệ thống quản lý nhóm nghiên cứu trực tuyến. Ban đầu có \(N\) nhà nghiên cứu, mỗi người làm việc độc lập trong nhóm riêng.

Giáo sư trưởng liên tục thực hiện các lệnh:

  • Gộp nhóm: Hợp nhất nhóm của nhà nghiên cứu \(u\) và nhóm của nhà nghiên cứu \(v\) để cùng thực hiện một dự án chung.
  • Hoàn tác: Kế hoạch thay đổi — hoàn tác thao tác gộp nhóm gần nhất chưa bị hoàn tác. Nếu không có thao tác nào để hoàn tác, bỏ qua.
  • Truy vấn: Kiểm tra xem \(u\) và \(v\) hiện có đang cùng nhóm không.

Hãy xây dựng hệ thống hỗ trợ đầy đủ ba loại thao tác trên.

Đị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 thao tác:
    • 1 u v — Gộp nhóm chứa \(u\) và nhóm chứa \(v\).
    • 2 — Hoàn tác thao tác gộp nhóm gần nhất.
    • 3 u v — In YES nếu \(u\) và \(v\) cùng nhóm, NO nếu không.

Định dạng đầu ra

Với mỗi thao tác loại 3, in YES hoặc NO trên một dòng riêng.

Ví dụ

Input:

5 8
1 1 2
1 2 3
3 1 3
2
3 1 3
1 4 5
3 4 5
2

Output:

YES
NO
YES

Giải thích:

  • Sau 1 1 2: nhóm {1,2}, {3}, {4}, {5}.
  • Sau 1 2 3: nhóm {1,2,3}, {4}, {5}.
  • 3 1 3: cùng nhóm → YES.
  • 2: hoàn tác gộp 2–3, quay về {1,2}, {3}, {4}, {5}.
  • 3 1 3: khác nhóm → NO.
  • Sau 1 4 5: nhóm {1,2}, {3}, {4,5}.
  • 3 4 5: cùng nhóm → YES.
  • 2: hoàn tác, quay về {1,2}, {3}, {4}, {5}.

Ràng buộc

Nhóm \(N\) \(Q\)
1 (30%) \(\le 10^3\) \(\le 10^3\)
2 (70%) \(\le 10^5\) \(\le 10^5\)

Với thao tác loại 1 và 3: \(1 \le u, v \le N\).


Nhận xét

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