Cây khung với đúng K đường thủ đô
Đề bài
Mô tả
Có thành phố ở Berland, một số cặp thành phố được nối với nhau bằng các con đường hai chiều, mỗi con đường có một trọng số nguyên dương biểu thị độ dài. Thành phố số là thủ đô. Một con đường được gọi là đường thủ đô nếu một trong hai đầu mút của nó là thành phố .
Công ty MST cần chọn ra một tập gồm đúng con đường sao cho:
- Sau khi chỉ giữ lại các con đường được chọn, mọi cặp thành phố vẫn có thể đi tới nhau (tức là tập được chọn tạo thành một cây khung của đồ thị).
- Trong tập được chọn có đúng đường thủ đô.
- Tổng độ dài các con đường được chọn là nhỏ nhất có thể khi thoả điều kiện 1 và 2.
Hãy tìm một tập con đường thoả mãn cả ba điều kiện trên, hoặc thông báo không tồn tại.
Dữ liệu vào
- Dòng đầu chứa ba số nguyên , , — số thành phố, số con đường, và số đường thủ đô bắt buộc phải có mặt.
- dòng tiếp theo, mỗi dòng chứa ba số nguyên , , — con đường thứ nối hai thành phố và với độ dài .
Các con đường được đánh số theo thứ tự xuất hiện trong dữ liệu vào. Giữa mỗi cặp thành phố có nhiều nhất một con đường. Không có con đường nào bắt đầu và kết thúc tại cùng một thành phố.
Dữ liệu ra
- Nếu không tồn tại tập con đường thoả mãn, in ra một dòng chứa số .
- Ngược lại, dòng đầu in số — số con đường trong tập được chọn. Dòng thứ hai in chỉ số của các con đường trong tập, cách nhau bởi dấu cách. Các chỉ số có thể in theo thứ tự tuỳ ý.
Nếu có nhiều đáp án tối ưu, in ra bất kỳ đáp án nào.
Ràng buộc
- ;
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 5 2 1 2 1 2 3 1 3 4 1 1 3 3 1 4 2 |
3 1 5 2 |
Chọn ba con đường (nối , độ dài ), (nối , độ dài ) và (nối , độ dài ). Cây khung gồm cả thành phố, có đúng đường thủ đô (đường và ), tổng độ dài . |
| 2 1 1 2 1 1 |
1 1 |
Chỉ có một con đường duy nhất, nó là đường thủ đô, đủ để nối thành phố với . |
| 3 1 2 2 3 5 |
-1 | Con đường duy nhất không nối tới thủ đô, nên không thể tạo cây khung có đường thủ đô. |
Bình luận