trang chủ / đề bài / voi23_food

Canh tác lương thực

Đề bài

Mô tả

Trong một vương quốc có N vùng, được đánh số từ 1 đến N, vùng được đánh số 1 là kinh đô của vương quốc. Có đúng N−1 con đường nối trực tiếp giữa các vùng với nhau đảm bảo mỗi vùng đều có thể tới kinh đô thông qua các con đường này. Vương quốc thực hiện phương cách quản lý phân cấp từ kinh đô tới các vùng bên dưới. Cụ thể, vùng X được gọi là quản lý vùng Y nếu mọi cách di chuyển thông qua các con đường từ vùng Y tới kinh đô đều luôn đi qua vùng X.

Các vùng đều có các thửa ruộng có thể canh tác lương thực trên đó, vùng thứ i (1≤i≤N) có Qi thửa ruộng, mỗi thửa ruộng nếu canh tác dự kiến sẽ cho sản lượng đúng Wi tấn. Nhà vua mong muốn tổng sản lượng lương thực trên toàn vương quốc phải đạt tối thiểu S tấn, biết rằng:

  • Do đặc thù mỗi vùng, vùng thứ i nếu sử dụng Ki thửa ruộng để canh tác lương thực sẽ tốn tổng chi phí canh tác và bảo vệ mùa màng là Ki2×Ci.
  • Nếu vùng X không sử dụng thửa ruộng nào để canh tác lương thực thì tất cả các vùng mà X quản lý cũng đều không canh tác lương thực.

Yêu cầu: Hãy giúp nhà vua xác định dãy (K1,K2,…,KN) là số lượng thửa ruộng tương ứng được phân công canh tác cho từng vùng, sao cho tổng chi phí canh tác và bảo vệ mùa màng là nhỏ nhất mà vẫn đạt được sản lượng mong muốn của nhà vua, hoặc thông báo là không có cách phân công nào thỏa mãn.

Dữ liệu vào

  • Dòng đầu ghi hai số nguyên dương N và S (N,S≤5000).
  • Dòng thứ i trong số N dòng tiếp theo ghi ba số nguyên dương Qi,Wi và Ci (Qi,Wi≤5000;Ci≤106).
  • Mỗi dòng trong N−1 dòng tiếp theo ghi hai số nguyên dương u và v (1≤u,v≤N) thể hiện có con đường nối trực tiếp giữa hai vùng u và v.

Các số trên cùng một dòng cách nhau bởi dấu cách.

Dữ liệu ra

In ra một số nguyên duy nhất là tổng chi phí canh tác và bảo vệ mùa màng nhỏ nhất tìm được. In ra −1 nếu không có phương án phân công nào thỏa mãn.

Ràng buộc

  • 1≤N,S≤5000.
  • 1≤Qi,Wi≤5000; 1≤Ci≤106.
  • 1≤u,v≤N; các con đường tạo thành một cây.

Subtasks

  • Subtask 1 (16% số điểm): Qi=1 với mọi i=1,2,…,N, và có các con đường trực tiếp từ kinh đô đến tất cả các vùng khác.
  • Subtask 2 (14% số điểm): N,S≤500.
  • Subtask 3 (20% số điểm): Qi=Wi=1 với mọi i=1,2,…,N.
  • Subtask 4 (16% số điểm): Qi=1 với mọi i=1,2,…,N.
  • Subtask 5 (20% số điểm): Có các con đường trực tiếp từ kinh đô đến tất cả các vùng khác.
  • Subtask 6 (14% số điểm): Không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
6 9
2 1 5
4 3 1
1 3 2
1 2 4
1 1 10
1 7 1
1 2
2 3
2 4
1 5
5 6
11 Dãy (K1,K2,K3,K4,K5,K6)=(1,2,1,0,0,0) cho tổng sản lượng lương thực là 1×1+2×3+1×3+0×2+0×1+0×7=10≥9, và là dãy cho chi phí nhỏ nhất cần tìm bằng 12×5+22×1+12×2+02×4+02×10+02×1=11. Vùng 6 có sản lượng mỗi thửa lớn và chi phí thấp nhưng chỉ được canh tác khi vùng 5 (vùng quản lý nó) canh tác.
3 10
1 2 1
2 3 1
1 1 1
1 2
2 3
-1 Canh tác mọi thửa ruộng của cả ba vùng chỉ được 1×2+2×3+1×1=9<10 tấn.

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