Đồ thị xinh xắn

Xem PDF

Nộp bài


Điểm: 20 (thành phần)
Thời gian: 1.0s
Bộ nhớ: 512M

Tác giả:
Dạng bài

Cho danh sách \(K\) cặp đỉnh \(\left(x_1, y_1\right)\), \(\left(x_2, y_2\right)\),..., \(\left(x_K, y_K\right)\), ta định nghĩa một đồ thị vô hướng là xinh xắn nếu nó không chứa một đường đi trực tiếp hoặc gián tiếp nào nối hai đỉnh \(x_i\) và \(y_i\) với mọi \(1\le i \le K\).

Cho đồ thị vô hướng \(G\) gồm \(N\) đỉnh (được đánh số từ \(1\) đến \(N\)) và \(M\) cạnh \(\left(u_1, v_1\right)\), \(\left(u_2, v_2\right)\),..., \(\left(u_M, v_M\right)\). Dữ liệu đảm bảo \(G\) là một đồ thị xinh xắn.

Bạn hãy viết chương trình trả lời \(Q\) câu hỏi độc lập, câu hỏi thứ \(i\) cho biết hai đỉnh \(p_i\), \(q_i\) và yêu cầu bạn trả lời xem \(G^{(i)}\) có phải là một đồ thị xinh xắn hay không, với \(G^{(i)}\) là đồ thị được tạo bằng cách thêm cạnh \(\left(p_i, q_i\right)\) vào đồ thị \(G\).

Input
  • Dòng đầu chứa hai số nguyên dương \(N\) và \(M\) \(\left(2\le N\le 2\times 10^5, 0\le M\le 2\times 10^5\right)\).
  • Dòng thứ \(i\) trong \(M\) dòng tiếp theo chứa hai số nguyên dương \(u_i\) và \(v_i\) thể hiện một cạnh của đồ thị \(\left(1\le u_i, v_i\le N\right)\).
  • Dòng tiếp theo chứa số nguyên dương \(K\) \(\left(1\le K\le 2\times 10^5\right)\).
  • Dòng thứ \(i\) trong \(K\) dòng tiếp theo chứa hai số nguyên dương \(x_i\), \(y_i\) \((1\le x_i, y_i\le N)\).
  • Dòng tiếp theo chứa số nguyên dương \(Q\) \(\left(1\le Q\le 2\times 10^5\right)\).
  • Dòng thứ \(i\) trong \(Q\) dòng tiếp theo chứa hai số nguyên dương \(p_i\), \(q_i\) \((1\le p_i, q_i\le N)\).
Output
  • Gồm \(Q\) dòng, dòng thứ \(i\) in ra Yes nếu \(G^{(i)}\) là một đồ thị xinh xắn, ngược lại in ra No.
Ví dụ
Sample input 01
6 6
1 2
2 3
2 3
3 1
5 4
5 5
3
1 5
2 6
4 3
4
2 5
2 6
5 6
5 4
Sample output 01
No
No
Yes
Yes