trang chủ / bài tập / soccerch

Santa Clauses và giải bóng đá

Đề bài

Mô tả

Đất nước Treeland gồm n thành phố được nối bởi n1 con đường hai chiều sao cho từ bất kỳ thành phố nào cũng đi được tới mọi thành phố khác (mạng lưới tạo thành một cây).

Sắp tới có một giải bóng đá với 2k đội đến từ 2k thành phố khác nhau. Ở vòng đầu, các đội được chia thành k cặp. Mỗi cặp thi đấu hai trận: một trận ở thành phố quê nhà của đội thứ nhất và một trận ở thành phố quê nhà của đội thứ hai.

Ban tổ chức cần chọn ra một số thành phố để bố trí chỗ ở cho các đội, và muốn dùng càng ít thành phố càng tốt. Ràng buộc:

  • Nếu một đội thi đấu ở hai thành phố uv thì đội đó phải ở tại một thành phố nằm trên đường đi ngắn nhất giữa uv (có thể là chính u hoặc v).
  • Hai đội trong cùng một cặp phải ở tại cùng một thành phố.

Hãy chia 2k đội thành k cặp và chọn số thành phố bố trí chỗ ở nhỏ nhất có thể là m, sao cho mỗi cặp ở tại một thành phố nằm trên đường đi giữa hai quê nhà của cặp đó.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên nk.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên ab cho biết có một con đường nối thành phố ab.
  • Dòng cuối chứa 2k số nguyên phân biệt c1,c2,,c2k, trong đó ci là quê nhà của đội thứ i.

Dữ liệu ra

  • Dòng đầu in ra số nguyên dương m: số thành phố ít nhất cần dùng để bố trí chỗ ở.
  • Dòng thứ hai in ra m số phân biệt d1,d2,,dm: chỉ số các thành phố được chọn để bố trí chỗ ở.
  • k dòng tiếp theo, dòng thứ j chứa ba số uj, vj, xj: ujvj là quê nhà của hai đội trong cặp thứ j, còn xj là thành phố mà cặp đó ở. Mỗi số trong c1,,c2k phải xuất hiện đúng một lần trong toàn bộ các ujvj. Mỗi xj phải thuộc {d1,,dm}.

Nếu có nhiều đáp án, in ra một đáp án bất kỳ.

Ràng buộc

  • 2n2·105
  • 22kn
  • 1a,bn, ab
  • 1cin, các ci phân biệt.

Ví dụ

Input Output Giải thích
6 2
1 2
1 3
2 4
2 5
3 6
2 5 4 6
1
2
2 4 2
5 6 2
Có thể bố trí tất cả các đội tại thành phố 2, vì 2 nằm trên đường đi ngắn nhất giữa mọi cặp thành phố trong {2,4,5,6}. Cặp (2,4) và cặp (5,6) đều ở tại thành phố 2.
10 5
2 6
2 1
7 2
4 6
7 10
4 3
3 5
9 6
8 7
10 9 2 7 8 5 6 1 3 4
1
2
2 6 2
7 9 2
8 4 2
10 3 2
1 5 2
Toàn bộ 10 đội ở tại thành phố 2. Mỗi cặp có thành phố 2 nằm trên đường đi giữa hai quê nhà.

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