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

Cây Táo

Đề bài

Mô tả

Cho một cây có gốc với n đỉnh, gốc là đỉnh 1. Mỗi đỉnh lá chứa một số táo ai; các đỉnh không phải lá đều có số táo bằng 0.

Trọng lượng của một cây con là tổng số táo trong tất cả các lá thuộc cây con đó. Ví dụ, trọng lượng của cây con tương ứng với một lá chính là số táo viết tại lá đó.

Cây được gọi là cân bằng nếu với mỗi đỉnh v, tất cả các cây con tương ứng với các con của v đều có trọng lượng bằng nhau.

Cho phép loại bỏ một số quả táo khỏi một số lá (chỉ giảm, không thêm). Hãy tính số quả táo ít nhất cần loại bỏ để cây trở nên cân bằng.

Luôn có thể đạt mục tiêu bằng cách loại bỏ tất cả các quả táo.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n — số đỉnh của cây.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an — số táo tại các đỉnh. Đảm bảo ai=0 với mọi đỉnh không phải lá.
  • n1 dòng tiếp theo, mỗi dòng chứa hai số nguyên xi,yi (xiyi) mô tả một cạnh của cây.

Đỉnh 1 là gốc.

Dữ liệu ra

Một số nguyên duy nhất — số táo ít nhất cần loại bỏ để cây trở nên cân bằng.

Ràng buộc

  • 2n105
  • 0ai108
  • 1xi,yin

Ví dụ

Input Output Giải thích
6
0 0 12 13 5 6
1 2
1 3
1 4
2 5
2 6
6 Các lá là 3,4,5,6 với số táo 12,13,5,6. Đỉnh 2 có hai con là lá 56; để 2 cân bằng, hai lá phải có cùng giá trị, lấy 5 — bỏ 1 táo. Sau đó các con của gốc có trọng lượng 10,12,13. Để gốc cân bằng, mỗi con của gốc phải có trọng lượng 10 (giá trị lớn nhất chia hết cho 2min(10,12,13)). Phải bỏ thêm 2+3=5 táo, tổng cộng 6.
2
0 1
1 2
0 Gốc chỉ có một con, mặc định cân bằng.
3
0 2 10
2 1
3 1
8 Hai con của gốc là lá 2 (có 2) và lá 3 (có 10). Phải bỏ 8 táo ở lá 3 để hai con bằng nhau.

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