Số Vùng 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

Thành phố thông minh quản lý mạng lưới giao thông gồm \(N\) khu vực. Các tuyến đường được xây dựngphá bỏ liên tục theo kế hoạch quy hoạch.

Định kỳ, hệ thống cần báo cáo hiện có bao nhiêu vùng liên thông (tập hợp các khu vực có thể đến được nhau thông qua các tuyến đường hiện có).

Hệ thống nhận \(Q\) sự kiện tuần tự:

  • 1 u v — Xây tuyến đường nối khu vực \(u\) và \(v\) (đảm bảo chưa có tuyến trực tiếp giữa \(u\) và \(v\)).
  • 2 u v — Phá tuyến đường giữa \(u\) và \(v\) (đảm bảo tuyến đang tồn tại).
  • 3 — Báo cáo số vùng liên thông hiện tại.

Đị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 (1 u v, 2 u v, hoặc 3).

Định dạng đầu ra

Với mỗi sự kiện 3, in một số nguyên — số vùng liên thông hiện tại.

Ví dụ

Input:

4 7
3
1 1 2
3
1 3 4
3
2 1 2
3

Output:

4
3
2
3

Giải thích:

  • Ban đầu: 4 khu vực cô lập → 4 vùng.
  • Xây 1–2: {1,2}, {3}, {4} → 3 vùng.
  • Xây 3–4: {1,2}, {3,4} → 2 vùng.
  • Phá 1–2: {1}, {2}, {3,4} → 3 vùng.

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\), \(u \ne v\).


Nhận xét

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