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

Tô đen cả cây

Đề bài

Mô tả

Cho một cây gồm n đỉnh, đánh số từ 1 đến n. Mỗi đỉnh được tô một trong hai màu: đen hoặc hồng.

Một quân cờ xuất phát tại đỉnh 1. Ở mỗi bước, quân cờ di chuyển từ đỉnh hiện tại sang một đỉnh kề với nó và đổi màu của đỉnh vừa đi tới: đỉnh hồng trở thành đen, đỉnh đen trở thành hồng. Riêng đỉnh 1 không bị đổi màu ở thời điểm xuất phát, nó chỉ đổi màu nếu quân cờ đi tới nó ở một bước sau đó.

Hãy tìm một hành trình sao cho sau khi quân cờ dừng lại, tất cả n đỉnh đều có màu đen. Hành trình là dãy các đỉnh mà quân cờ đi qua theo thứ tự, bắt đầu bằng đỉnh 1, trong đó hai đỉnh liên tiếp bất kỳ phải kề nhau trên cây. Quân cờ được phép đi qua cùng một đỉnh nhiều lần và có thể dừng lại ở đỉnh bất kỳ.

Dữ liệu đảm bảo luôn tồn tại đáp án. Nếu có nhiều hành trình hợp lệ, in ra một hành trình bất kỳ, miễn là số đỉnh của hành trình không vượt quá 107.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n là số đỉnh của cây.
  • n dòng tiếp theo, dòng thứ i chứa số nguyên ci mô tả màu của đỉnh i: ci=1 nếu đỉnh i màu đen, ci=1 nếu đỉnh i màu hồng.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên uv mô tả một cạnh nối đỉnh u và đỉnh v.

Dữ liệu ra

In ra dãy chỉ số các đỉnh của hành trình theo đúng thứ tự đi qua, cách nhau bởi dấu cách. Nếu tất cả các đỉnh ban đầu đã có màu đen, bạn có thể in ra 1 (hành trình chỉ gồm đỉnh xuất phát).

Ràng buộc

  • 2n2·105
  • ci{1,1}
  • 1u,vn, các cạnh tạo thành một cây.
  • Hành trình in ra có không quá 107 đỉnh.

Ví dụ

Input Output Giải thích
5
1
1
-1
1
-1
2 5
4 3
2 4
4 1
1 4 3 4 2 5 2 4 1 4 1 Ban đầu đỉnh 35 màu hồng. Quân cờ đi 14 (đỉnh 4 thành hồng), 43 (đỉnh 3 thành đen), 34 (đỉnh 4 thành đen), 42 (đỉnh 2 thành hồng), 25 (đỉnh 5 thành đen), 52 (đỉnh 2 thành đen), 24, 41, 14, 41. Bốn bước cuối đổi màu đỉnh 4 và đỉnh 1 mỗi đỉnh hai lần nên màu của chúng không thay đổi. Kết quả là cả 5 đỉnh đều đen.
3
-1
1
-1
2 1
3 2
1 2 3 2 1 Cây là đường thẳng 123. Quân cờ đi tới 2 (thành hồng), tới 3 (thành đen), quay lại 2 (thành đen), quay lại 1 (thành đen).
2
-1
-1
1 2
1 2 1 Đi từ 1 sang 2 làm đỉnh 2 thành đen, quay lại 1 làm đỉnh 1 thành đen.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0