Cây khung với đúng K đường thủ đô

Đề bài

Mô tả

n 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ố 1thủ đô. 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ố 1.

Công ty MST cần chọn ra một tập gồm đúng n1 con đường sao cho:

  1. 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ị).
  2. Trong tập được chọn có đúng k đường thủ đô.
  3. 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 n, m, k — số thành phố, số con đường, và số đường thủ đô bắt buộc phải có mặt.
  • m dòng tiếp theo, mỗi dòng chứa ba số nguyên ai, bi, wi — con đường thứ i nối hai thành phố aibi với độ dài wi.

Các con đường được đánh số 1,2,,m 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ố 1.
  • Ngược lại, dòng đầu in số n1 — số con đường trong tập được chọn. Dòng thứ hai in n1 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

  • 1n5000
  • 0m105
  • 0k<5000
  • 1ai,bin; aibi
  • 1wi105

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 1 (nối 12, độ dài 1), 5 (nối 14, độ dài 2) và 2 (nối 23, độ dài 1). Cây khung gồm cả 4 thành phố, có đúng 2 đường thủ đô (đường 15), tổng độ dài =4.
2 1 1
2 1 1
1
1
Chỉ có một con đường duy nhất, nó là đường thủ đô, đủ để nối 2 thành phố với k=1.
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ó 2 đường thủ đô.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 GO groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0