Berland và k cây đường đi ngắn nhất

Đề bài

Mô tả

Cho một đồ thị vô hướng liên thông gồm n đỉnh đánh số từ 1 đến nm cạnh. Giữa hai đỉnh bất kỳ có nhiều nhất một cạnh, không có cạnh nối một đỉnh với chính nó.

Cần chọn ra đúng n1 cạnh sao cho:

  • Tập cạnh được chọn vẫn giữ đồ thị liên thông (tức tạo thành cây khung);
  • Gọi di là số cạnh trên đường đi từ đỉnh 1 đến đỉnh i trong cây được chọn, tổng d1+d2++dn phải nhỏ nhất có thể.

Hãy in ra min(k,T) phương án khác nhau thoả mãn yêu cầu trên, trong đó T là tổng số phương án hợp lệ.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • m dòng tiếp theo, mỗi dòng chứa hai số nguyên ai, bi mô tả một cạnh nối đỉnh aibi. Các cạnh được đánh số từ 1 đến m theo thứ tự nhập vào.

Dữ liệu ra

  • Dòng đầu in t=min(k,T).
  • t dòng tiếp theo, mỗi dòng là một xâu nhị phân độ dài m. Ký tự thứ j bằng 1 nếu cạnh thứ j được chọn trong phương án đó, ngược lại bằng 0. Mỗi xâu phải có đúng n1 ký tự 1. Các xâu phải đôi một khác nhau. Thứ tự in các phương án tuỳ ý. Nếu có nhiều cách chọn t phương án, in ra bất kỳ cách nào.

Ràng buộc

  • 2n2·105
  • n1m2·105
  • 1k2·105
  • m·k106
  • 1ai,bin, aibi
  • Giữa hai đỉnh có nhiều nhất một cạnh. Đồ thị ban đầu liên thông.

Ví dụ

Input Output Giải thích
4 4 3
1 2
2 3
1 4
4 3
2
1110
1011
Có đúng 2 cây khung BFS gốc tại đỉnh 1, in cả hai.
4 6 3
1 2
2 3
1 4
4 3
2 4
1 3
1
101001
Chỉ có duy nhất một cách chọn 3 cạnh sao cho mọi đỉnh đều cách đỉnh 1 đúng 1 bước.
5 6 2
1 2
1 3
2 4
2 5
3 4
3 5
2
111100
110110
4 cây thoả mãn, in k=2 phương án bất kỳ.

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 1.26.3 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