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

Cây về không

Đề bài

Mô tả

Cho một cây gồm N đỉnh được đánh số từ 1 đến N. Trên đỉnh thứ i có ghi một số nguyên vi.

Mỗi bước, bạn được thực hiện thao tác sau:

  1. Chọn một cây con của cây đã cho, tức là một tập đỉnh liên thông (cùng với các cạnh nối chúng), sao cho tập đỉnh này chứa đỉnh 1.
  2. Tăng thêm 1, hoặc giảm đi 1, tất cả các số ghi trên những đỉnh vừa chọn.

Lưu ý rằng mỗi thao tác chỉ được cộng 1 hoặc trừ 1 (không được chọn lượng thay đổi lớn hơn), và tập đỉnh được chọn luôn phải liên thông và luôn phải chứa đỉnh 1.

Hãy tìm số bước ít nhất để đưa toàn bộ các số ghi trên cây về 0.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N.
  • N1 dòng tiếp theo, mỗi dòng chứa hai số nguyên aibi, cho biết có một cạnh nối đỉnh ai và đỉnh bi. Dữ liệu đảm bảo đồ thị cho trước là một cây.
  • Dòng cuối cùng chứa N số nguyên v1,v2,,vN.

Dữ liệu ra

Một số nguyên duy nhất là số bước ít nhất cần thực hiện.

Ràng buộc

  • 1N105
  • 1ai,biN, aibi
  • |vi|109

Ví dụ

Input Output Giải thích
3
1 2
1 3
1 -1 1
3 Giảm tập {1,3} đi 1 được (0,1,0), tăng tập {1,2} lên 1 được (1,0,0), giảm tập {1} đi 1 được (0,0,0). Tổng cộng 3 bước.
3
1 2
1 3
2 0 1
2 Giảm tập {1,3} đi 1 được (1,0,0), rồi giảm tập {1} đi 1. Đỉnh 2 vốn đã bằng 0 nên không cần đụng tới.
5
3 1
2 4
3 4
2 5
0 -3 -1 2 4
20 Cây là một đường thẳng 13425 với các giá trị 0,1,2,3,4 theo thứ tự dọc đường đi. Do dấu của các giá trị đan xen nhau, phương án tối ưu cần đúng 10 bước tăng và 10 bước giảm.

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