Cạnh ghen tị

Đề bài

Mô tả

Cho đồ thị vô hướng liên thông có trọng số G gồm n đỉnh và m cạnh, các cạnh được đánh số từ 1 đến m theo thứ tự xuất hiện trong dữ liệu vào. Cây khung nhỏ nhất của G là một cây khung có tổng trọng số các cạnh nhỏ nhất có thể.

Khi chạy một thuật toán tìm cây khung nhỏ nhất, ta chỉ nhận được một cây khung, và những cạnh không được chọn sẽ "ghen tị" với những cạnh được chọn. Tuy nhiên G có thể có rất nhiều cây khung nhỏ nhất khác nhau.

Cho q truy vấn, truy vấn thứ i là một tập gồm ki cạnh phân biệt của G. Với mỗi truy vấn, hãy xác định xem có tồn tại một cây khung nhỏ nhất của G chứa đồng thời tất cả các cạnh trong tập đó hay không.

Đồ thị có thể có nhiều cạnh nối cùng một cặp đỉnh, nhưng không có cạnh nối một đỉnh với chính nó.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nm: 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 ui, vi, wi: cạnh thứ i nối hai đỉnh ui, vi và có trọng số wi.
  • Dòng tiếp theo chứa số nguyên q: số truy vấn.
  • q dòng cuối, dòng thứ i bắt đầu bằng số nguyên ki, tiếp theo là ki số nguyên phân biệt trong đoạn [1,m]: chỉ số các cạnh thuộc truy vấn thứ i.

Dữ liệu ra

Với mỗi truy vấn, in ra trên một dòng riêng chữ YES nếu tồn tại cây khung nhỏ nhất chứa tất cả các cạnh của truy vấn, ngược lại in ra NO.

Ràng buộc

  • 2n5·104
  • 2m5·104mn1
  • 1ui,vin, uivi
  • 1wi5·104
  • 1q5·104
  • 1kin1 và tổng của tất cả ki không vượt quá 5·104
  • Đồ thị được đảm bảo liên thông

Ví dụ

Input Output Giải thích
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
YES
NO
YES
NO
Cây khung nhỏ nhất có tổng trọng số 6. Truy vấn 1: cây khung gồm các cạnh {1,3,4,6} là cây khung nhỏ nhất và chứa cả cạnh 3 lẫn cạnh 4. Truy vấn 2: ba cạnh 3,4,5 tạo thành chu trình 234 nên không cây khung nào chứa được cả ba. Truy vấn 3: cạnh 1 và cạnh 7 cùng nằm trong một cây khung nhỏ nhất. Truy vấn 4: cạnh 1 và cạnh 2 đều có trọng số 2, nhưng không cây khung nhỏ nhất nào chứa được cả hai.
3 2
1 2 3
2 3 6
3
1 1
1 2
2 1 2
YES
YES
YES
Đồ thị đã là một cây nên nó có đúng một cây khung, và cây khung đó chứa mọi cạnh. Mọi truy vấn đều cho kết quả YES.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 csc 6.12.0.200 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 kotlinc 2.4.10 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0