Đồ thị xinh xắn

View as PDF

Submit solution


Points: 20 (partial)
Time limit: 1.0s
Memory limit: 512M

Author:
Problem types

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