B. Hệ thống gần hoàn hảo (Mã bài: SPERFECT)

Bộ nhớ: 256 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản

Đề bài

Một hệ thống S gồm m máy biến đổi số được đánh số từ 1 tới m . Hệ thống thực hiện phép biến đổi trên tập các số nguyên dương từ 1 tới n . Hoạt động của máy i được xác định bởi cặp số nguyên dương (a_i, b_i) ( 1 \le a_i, b_i \le n ): Máy nhận đầu vào là số nguyên dương a_i và trả ở đầu ra số nguyên dương b_i . Như vậy hệ thống S được mô tả bởi hai dãy số A=(a₁, a₂, ..., aₘ) B=(b₁, b₂, ..., bₘ) .

Ta nói một số nguyên dương x có thể biến đổi thành số nguyên dương y nếu x = y hoặc tồn tại một dãy hữu hạn các số nguyên dương x = p_1, p_2, ..., p_k = y sao cho đối với hai phần tử liên tiếp p_i, p_{i+1} bất kỳ trong dãy, luôn tìm được một trong số các máy đã cho để biến đổi p_i thành p_{i+1} .

Hệ thống S được gọi là gần hoàn hảo nếu với hai số a, b bất kỳ thuộc tập A \cup B , hoặc a có thể biến đổi về b , hoặc b có thể biến đổi về a . Ở đây A \cup B là ký hiệu tập các phần tử thuộc dãy A hoặc dãy B .

Yêu cầu: Hãy kiểm tra xem hệ thống S cho trước có phải là gần hoàn hảo hay không?

Dữ liệu:

  • Dòng đầu tiên chứa số nguyên dương q là số bộ dữ liệu. Tiếp theo là q nhóm dòng mô tả các bộ dữ liệu:
    • Dòng đầu tiên trong nhóm chứa hai số nguyên dương n, m ( 1 \le n, m \le 10^5 )
    • m dòng tiếp theo trong nhóm, mỗi dòng chứa một cặp số tương ứng với một máy biến đổi số.

Kết quả: Ghi ra q dòng: dòng thứ i (tương ứng với bộ dữ liệu thứ i trong file dữ liệu vào) chứa thông báo "YES", nếu hệ thống S trong bộ dữ liệu tương ứng là gần hoàn hảo, và thông báo "NO" nếu trái lại

Ví dụ:

Dữ liệu:

2
6 3
1 3
2 3
3 1
6 2
1 3
2 3

Kết quả:

YES
NO