Xóa cạnh
Đề bài
Mô tả
Hôm nay Harry đang học về cây khung nhỏ nhất của đồ thị.
Cây khung nhỏ nhất của một đồ thị vô hướng, liên thông, có trọng số trên cạnh là một tập con các cạnh nối tất cả các đỉnh với nhau, không tạo chu trình và có tổng trọng số nhỏ nhất có thể.
Ví dụ, xét đồ thị đỉnh với các cạnh trọng số , trọng số , trọng số , trọng số , trọng số , trọng số , trọng số , và các cạnh , , , , cùng trọng số . Đồ thị này có hai cây khung nhỏ nhất: cả hai đều gồm các cạnh , , , , , và thêm đúng một trong hai cạnh hoặc .
Harry đã vẽ một đồ thị lên giấy. Tuy nhiên, cậu nhận thấy đồ thị của mình có nhiều hơn một cây khung nhỏ nhất. Harry muốn xóa đi ít cạnh nhất khỏi đồ thị để đồ thị thu được có đúng một cây khung nhỏ nhất. Lưu ý rằng Harry không cần tối thiểu hóa tổng trọng số của các cạnh bị xóa.
Xét lại ví dụ trên. Nếu xóa cạnh nối đỉnh và , đồ thị thu được chỉ có một cây khung nhỏ nhất; nghĩa là số cạnh ít nhất cần xóa là . Tuy nhiên, đây không phải cách tối ưu duy nhất: xóa bất kỳ cạnh nào có trọng số không quá (một trong các cạnh , , và ) cũng làm cây khung nhỏ nhất trở nên duy nhất. Nhắc lại, tổng trọng số các cạnh bị xóa không cần nhỏ nhất.
Hãy giúp Harry tìm số cạnh ít nhất cần xóa để cây khung nhỏ nhất là duy nhất, và chỉ ra một cách xóa!
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên : số bộ dữ liệu.
- Mỗi bộ dữ liệu có dạng:
- Dòng đầu tiên chứa hai số nguyên và : số đỉnh và số cạnh của đồ thị.
- dòng tiếp theo, dòng thứ chứa ba số nguyên , , : có một cạnh vô hướng nối và với trọng số . Dữ liệu đảm bảo không có hai cạnh nối cùng một cặp đỉnh.
Dữ liệu ra
Với mỗi bộ dữ liệu, in ra một dòng:
- Nếu đồ thị không liên thông, in ra .
- Ngược lại, in ra : số cạnh ít nhất Harry cần xóa, tiếp theo là số nguyên: chỉ số của các cạnh bị xóa. Các cạnh được đánh số từ đến theo thứ tự xuất hiện trong dữ liệu vào. Nếu có nhiều đáp án, in ra đáp án bất kỳ.
Ràng buộc
- , .
- , , .
- Tổng của tất cả các bộ dữ liệu không vượt quá . Tổng của tất cả các bộ dữ liệu không vượt quá .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 7 12 2 7 1 2 3 2 5 6 3 4 5 4 6 7 5 3 4 5 1 7 6 1 2 9 1 3 9 1 4 9 1 5 9 1 6 9 |
1 6 | Đây chính là đồ thị trong đề bài. Xóa cạnh thứ , tức cạnh , thì cây khung nhỏ nhất bắt buộc dùng cạnh và trở nên duy nhất. Các đáp án như 1 2 (xóa cạnh ) cũng đúng. |
| 3 1 0 3 3 1 2 7 2 3 7 1 3 7 4 2 1 2 1 3 4 1 |
0 1 3 -1 |
Đồ thị một đỉnh có đúng một cây khung (rỗng). Tam giác có ba cạnh bằng nhau có ba cây khung nhỏ nhất; xóa một cạnh bất kỳ là đủ. Đồ thị thứ ba không liên thông. |
Bình luận