trang chủ / đề bài / csp_tst_23_c

Tô màu cây

Đề bài

Mô tả

Cho một cây có n đỉnh. Các đỉnh được đánh số từ 1 đến n và gốc của cây là đỉnh 1. Một số đỉnh của cây đã được tô màu đen, một số khác thì chưa được tô màu. Ta sẽ tìm cách tô màu cho tất cả các đỉnh.

Thao tác tô màu sẽ được thực hiện như sau: chọn một đỉnh u và một số nguyên i≥0, rồi tô tất cả các đỉnh v thành màu đen nếu các điều kiện sau thỏa mãn:

  • Đỉnh v nằm trong cây con gốc u (cây con gốc u gồm u và mọi hậu duệ của u).
  • Khoảng cách giữa hai đỉnh u và v chính xác là i. Trong đó khoảng cách giữa hai đỉnh u và v là số cạnh nhỏ nhất để đi từ u đến v.

Chi phí để tô màu một đỉnh có khoảng cách i là ci. Tại một thao tác tô màu, nếu chọn đỉnh u mà có nhiều hơn một đỉnh v cùng có khoảng cách với đỉnh u bằng i thì các đỉnh này sẽ được tô màu cùng lúc với chi phí là ci. Như vậy mỗi thao tác (chọn u và i) có chi phí đúng bằng ci, không phụ thuộc vào số đỉnh được tô. Được phép tô lại một đỉnh đã có màu đen.

Yêu cầu: Tìm cách tô sao cho tất cả các đỉnh đều được tô thành màu đen với chi phí là nhỏ nhất.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n (1≤n≤106).
  • Dòng tiếp theo gồm n số nguyên c0,c1,…,cn−1 (0≤ci≤109), với ci là chi phí để tô màu ở khoảng cách i.
  • Dòng tiếp theo gồm n số a1,a2,…,an, trong đó ai∈{0,1}. Nếu ai=0 thì đỉnh i chưa được tô màu, ai=1 thì đỉnh i đã được tô màu đen.
  • n−1 dòng tiếp theo, mỗi dòng gồm hai số nguyên u,v (1≤u,v≤n) thể hiện một cạnh của cây.

Dữ liệu ra

In ra một dòng ghi một số là tổng chi phí nhỏ nhất để tô tất cả các đỉnh thành màu đen.

Ràng buộc

  • 1≤n≤106.
  • 0≤ci≤109.
  • ai∈{0,1}.
  • Các cạnh tạo thành một cây.

Subtasks

  • Subtask 1 (20% số test, ứng với 20% số điểm): n≤20.
  • Subtask 2 (30% số test khác, ứng với 30% số điểm): n≤200.
  • Subtask 3 (30% số test khác, ứng với 30% số điểm): n≤2000.
  • Subtask 4 (20% số test còn lại, ứng với 20% số điểm): không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
5
10 5 1 5 5
0 1 0 0 1
1 2
2 3
2 4
4 5
11 Đỉnh 2 và 5 đã có màu đen. Chọn đỉnh 1 với khoảng cách 2: tô đỉnh 3 và 4 cùng lúc, chi phí c2=1. Sau đó chọn đỉnh 1 với khoảng cách 0: tô đỉnh 1, chi phí c0=10. Tổng chi phí 11.
4
7 3 1 2
0 0 0 0
1 2
2 3
3 4
12 Cây là đường đi 1−2−3−4, mọi đỉnh chưa có màu. Đỉnh 1 chỉ tô được bằng u=1,i=0 (chi phí 7); đỉnh 2: u=1,i=1 (chi phí 3); đỉnh 3: u=1,i=2 (chi phí 1); đỉnh 4: u=2,i=2 (chi phí 1, đỉnh u không nhất thiết là gốc). Tổng 7+3+1+1=12.

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.402 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.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0