Thứ Hai, 29 tháng 8, 2022

CLOSING Kiểm tra liên thông

Cho đồ thị vô hướng N đỉnh, M cạnh. Lần lượt thực hiện N thao tác xóa, mỗi thao tác sẽ xóa 1 đỉnh cùng các cạnh kề với đỉnh đó khỏi đồ thị .

Yêu cầu: cho biết trước mỗi thao tác xóa, đồ thị có liên thông hay không?

Input

  • Dòng đầu ghi 2 số nguyên dương N, M (1 ≤ N, M ≤ 2.105)
  • M dòng tiếp theo, mỗi dòng ghi 2 số u v cho biết có cạnh giữa hai đỉnh u v.
  • N dòng tiếp theo, mỗi dòng là một truy vấn ghi 1 số nguyên dương cho biết đỉnh bị xóa (N số trên N dòng là một hoán vị của dãy 1…N).

Output: mỗi dòng ghi trạng thái của đồ thị trước mỗi thao tác xóa, nếu đồ thị liên thông xuất ‘YES’, ngược lại xuất ‘NO’.

Input

Output

Giải thích

4 3

1 2

2 3

3 4

3

4

1

2

YES

NO

YES

YES

 

  • Trước khi xóa đỉnh 3 (ban đầu ) đồ thị liên thông,
  • Trước khi xóa đỉnh 4 (sau khi xóa đỉnh 3) đồ thị đang bị chia thành 2 thành phần (1, 2) và (4)
  • Trước khi xóa đỉnh 1 (sau khi xóa đỉnh 4) đồ thị là liên thông (1,2)
  • Trước khi xóa đỉnh 2 (sau khi xóa đỉnh 1) đồ thị còn 1 đỉnh duy nhất (1) nên liên thông.

 

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.