Cây khung nhỏ nhất
Xem PDF
Điểm:
2100 (p)
Thời gian:
1.0s
Bộ nhớ:
256M
Input:
bàn phím
Output:
màn hình
Cho một đồ thị vô hướng, có trọng số, liên thông gồm \(N\) đỉnh và \(M\) cạnh. Ta nhận được \(Q\) truy vấn. Mỗi truy vấn chứa một tập các cạnh \(S_i \subset \{1, 2, \dots, M\}\).
Yêu cầu: Với mỗi truy vấn, hãy kiểm tra xem liệu có tồn tại ít nhất một cây khung nhỏ nhất (MST) của đồ thị chứa toàn bộ các cạnh trong tập \(S_i\) hay không.
Input
- Dòng đầu tiên chứa hai số nguyên \(N, M\) (\(2 \leq N, M \leq 5\cdot 10^5\), \(N-1 \leq M\)) lần lượt là số đỉnh và số cạnh của đồ thị.
- \(M\) dòng tiếp theo, dòng thứ \(i\) chứa ba số nguyên \(u_i, v_i, w_i\) (\(u_i \neq v_i, 1 \leq w_i \leq 10^5\)) tương ứng là hai đỉnh đầu mút và trọng số của cạnh thứ \(i\). Có thể có đa cạnh giữa hai đỉnh bất kỳ. Đảm bảo đồ thị đã cho là liên thông.
- Dòng tiếp theo chứa một số nguyên \(Q\) (\(1 \leq Q \leq 5\cdot 10^5\)) là số lượng truy vấn.
- \(Q\) dòng tiếp theo biểu diễn các truy vấn. Dòng thứ \(i\) bắt đầu bằng một số nguyên \(k_i\) (\(1 \leq k_i \leq N-1\)) là kích thước của tập cạnh truy vấn, theo sau là \(k_i\) số nguyên phân biệt trong khoảng từ \(1\) đến \(M\) là chỉ số của các cạnh.
- Đảm bảo tổng của \(k_i\) qua tất cả \(Q\) truy vấn không vượt quá \(5\cdot 10^5\).
Output
- Với mỗi truy vấn, in ra
YES(không có dấu ngoặc kép) nếu tồn tại ít nhất một MST chứa tất cả các cạnh trong truy vấn đó, ngược lại in raNO.
Example
Test 1
Input
5 7
1 2 2
1 3 2
2 3 1
2 4 1
3 4 1
3 5 2
4 5 2
4
2 3 4
3 3 4 5
2 1 7
2 1 2
Output
YES
NO
YES
NO
Bình luận