Điều hướng chính

Ngôn ngữ

Phím tắt

/
Chuyển đến ô tìm bài
g p
Đi đến bài tập
g c
Đi đến kỳ thi
g u
Đi đến người dùng
?
Mở trợ giúp phím tắt

Kết nối thành phố

Dễ Disjoint set (DSU)

  • 100 Điểm
  • 0% Tỉ lệ AC
  • 0 Số AC
  • 256M Bộ nhớ giới hạn
  • 1.0s Giới hạn thời gian

Cho một đồ thị \(n\) đỉnh ban đầu không có cạnh. Có \(q\) truy vấn, mỗi truy vấn thuộc một trong hai loại sau:

  • \(1 \; u \; v\) --- thêm một cạnh nối giữa đỉnh \(u\) và \(v\).
  • \(2 \; u \; v\) --- kiểm tra xem \(u\) và \(v\) có được kết nối (trực tiếp hoặc gián tiếp) với nhau không.

Bạn hãy trả lời tất cả các truy vấn loại 2.

\InputFile

  • Dòng đầu tiên chứa hai số nguyên \(n, q\) (\(1 \leq n, q \leq 10^5\)) --- số đỉnh và số truy vấn.
  • Mỗi dòng trong \(q\) dòng tiếp theo chứa ba số nguyên \(t, u, v\) (\(1 \leq u, v \leq n\)) --- một truy vấn như mô tả.

\OutputFile

Với mỗi truy vấn loại 2, in ra một dòng YES nếu \(u\) và \(v\) được kết nối với nhau, ngược lại in ra NO.

\Examples

\beginexample
\exmp
6 5
1 1 2
1 1 3
2 2 3
1 5 6
2 4 5

YES
NO

\endexample

\Note

  • Truy vấn thứ 3: các đỉnh \(2\) và \(3\) cùng thuộc thành phần liên thông với đỉnh \(1\) nên được kết nối.
  • Truy vấn thứ 5: đỉnh \(4\) đứng riêng, không kết nối với ai.

\Scoring

  • Subtask 1 (40 điểm): \(n, q \leq 1000\)
  • Subtask 2 (60 điểm): Không có ràng buộc gì thêm.

\endproblem

Bình luận

Chưa có bình luận nào.