Cây XOR

Đề bài

Mô tả

Cho một cây có n đỉnh, đánh số từ 1 đến n, gốc tại đỉnh 1. Mỗi đỉnh i có một giá trị ban đầu initi{0,1}.

Một thao tác được định nghĩa như sau: chọn một đỉnh x. Khi đó:

  • Giá trị của x bị đảo (01).
  • Các con (cách x một cạnh) của x giữ nguyên.
  • Các cháu (cách x hai cạnh) bị đảo.
  • Cứ tiếp tục như vậy: ở khoảng cách chẵn so với x thì đảo, ở khoảng cách lẻ thì giữ nguyên.

Hãy đưa giá trị của mỗi đỉnh i về đúng goali{0,1} bằng số thao tác ít nhất.

Dữ liệu vào

  • Dòng đầu: số nguyên n.
  • n1 dòng tiếp theo: hai số ui,vi — một cạnh của cây.
  • Dòng tiếp theo: n số init1,init2,,initn.
  • Dòng cuối: n số goal1,goal2,,goaln.

Dữ liệu ra

  • Dòng đầu: số nguyên cnt — số thao tác tối thiểu.
  • cnt dòng tiếp theo: mỗi dòng một số xi — đỉnh được chọn ở thao tác thứ i.

Nếu có nhiều phương án tối ưu, in ra phương án bất kỳ. Thứ tự thực hiện các thao tác không ảnh hưởng đến kết quả cuối cùng.

Ràng buộc

  • 1n105
  • 1ui,vin, uivi
  • initi,goali{0,1}
  • Các cạnh tạo thành một cây có gốc tại đỉnh 1.

Ví dụ

Input Output Giải thích
10
2 1
3 1
4 2
5 1
6 2
7 5
8 6
9 8
10 5
1 0 1 1 0 1 0 1 0 1
1 0 1 0 0 1 1 1 0 1
2
7
4
Chọn x=7: đỉnh 7 bị đảo (từ 0 thành 1). Chọn x=4: đỉnh 4 bị đảo (từ 1 thành 0). Sau hai thao tác, tất cả các đỉnh đạt đúng giá trị mục tiêu. Thứ tự in các đỉnh không quan trọng vì có nhiều phương án hợp lệ.
1
0
0
0 Đã đạt mục tiêu, không cần thao tác nào.
15
2 1
3 1
4 1
5 1
6 3
7 1
8 1
9 1
10 5
11 9
12 3
13 5
14 5
15 4
1 1 0 0 0 0 1 1 1 0 1 1 1 0 0
1 0 1 1 0 1 1 1 1 1 1 1 1 1 0
6
14
10
4
3
6
2
Một phương án tối ưu gồm 6 thao tác tại tập đỉnh {2,3,4,6,10,14}. Thứ tự liệt kê không ảnh hưởng đến kết quả.

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