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

Bầu cử ở thành phố Valera

Đề bài

Mô tả

Thành phố nơi Valera sống chuẩn bị bầu cử Hội đồng thành phố.

Thành phố có n quận và n1 con đường hai chiều, từ một quận bất kỳ đều có thể đi tới mọi quận khác theo các con đường. Các quận được đánh số từ 1 đến n. Với mỗi con đường, người dân đã xác định nó có phải là đường hỏng (đường cần sửa) hay không.

n ứng cử viên tham gia bầu cử, cũng được đánh số từ 1 đến n. Nếu ứng cử viên số i trúng cử vào Hội đồng thành phố, người này sẽ thực hiện đúng một lời hứa: sửa tất cả các đường hỏng nằm trên đường đi từ quận i tới quận 1 (nơi đặt Hội đồng thành phố).

Hãy giúp Valera chọn ra một tập ứng cử viên sao cho nếu tất cả ứng cử viên trong tập đó trúng cử thì mọi đường hỏng trong thành phố đều được sửa. Nếu có nhiều tập thỏa mãn, hãy chọn tập có số ứng cử viên ít nhất.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số quận trong thành phố.
  • n1 dòng tiếp theo, mỗi dòng chứa ba số nguyên dương xi, yi, ti: hai quận được nối bởi con đường thứ i và loại đường. Nếu ti=1 thì con đường không hỏng; nếu ti=2 thì con đường bị hỏng.

Dữ liệu đảm bảo các con đường tạo thành một cây.

Dữ liệu ra

  • Dòng đầu in một số không âm k: số ứng cử viên ít nhất cần chọn.
  • Dòng thứ hai in k số nguyên cách nhau bởi dấu cách: số hiệu của các ứng cử viên được chọn. Nếu có nhiều đáp án, in ra đáp án nào cũng được.

Ràng buộc

  • 2n105
  • 1xi,yin
  • 1ti2

Ví dụ

Input Output Giải thích
5
1 2 2
2 3 2
3 4 2
4 5 2
1
5
Cả 4 con đường đều hỏng và nằm trên đường đi từ quận 5 về quận 1. Chọn ứng cử viên 5 là đủ sửa tất cả.
5
1 2 1
2 3 2
2 4 1
4 5 1
1
3
Chỉ có con đường 2-3 bị hỏng. Đường đi từ quận 3 về quận 1 đi qua con đường này, nên chọn ứng cử viên 3.
5
1 2 2
1 3 2
1 4 2
1 5 2
4
2 3 4 5
Bốn con đường hỏng nối trực tiếp với quận 1, không có đường đi nào đi qua nhiều hơn một trong số chúng, nên cần cả 4 ứng cử viên 2, 3, 4, 5.

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