CSES - MST Edge Set Check | Kiểm Tra Tập Cạnh Trong MST

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 2200 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Cho một đồ thị vô hướng có trọng số và các tập cạnh, hãy xác định với mỗi tập liệu các cạnh đó có thể cùng được đưa vào một cây khung nhỏ nhất hay không.

Input

Dòng đầu tiên chứa ba số nguyên \(n\), \(m\)\(q\): số đỉnh, số cạnh và số tập cạnh. Các đỉnh được đánh số \(1,2,\dots,n\).

\(m\) dòng tiếp theo mô tả các cạnh. Mỗi dòng chứa ba số nguyên \(a\), \(b\), \(w\): có một cạnh giữa hai đỉnh \(a\)\(b\) với trọng số \(w\). Các cạnh được đánh số \(1,2,\dots,m\) theo thứ tự nhập.

\(2q\) dòng tiếp theo mô tả các tập cạnh. Với mỗi tập, dòng đầu tiên chứa kích thước của tập và dòng thứ hai chứa các cạnh trong tập. Tổng số cạnh trong tất cả các tập không vượt quá \(m\).

Bạn có thể giả sử rằng đồ thị liên thông và đơn, và mỗi cạnh xuất hiện nhiều nhất một lần trong đồ thị.

Output

Với mỗi tập cạnh, in ra YES nếu các cạnh đó có thể được đưa vào cây khung nhỏ nhất, và NO nếu không.

Constraints

  • \(1 \le n \le 10^5\)

  • \(1 \le m, q \le 2 \cdot 10^5\)

  • \(1 \le a,b \le n\)

  • \(1 \le w \le 10^9\)

Example

Test 1

Input
5 6 4
1 2 4
1 3 2
2 4 2
3 4 1
3 5 3
4 5 3
3
2 3 4
1
1
2
2 6
2
5 6
Output
YES
NO
YES
NO

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.