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

Bón Phân Đồng Cỏ

Đề bài

Mô tả

N đồng cỏ được nối bởi N1 con đường tạo thành một cây. Mỗi con đường tốn 1 giây để đi qua. Đồng cỏ i có cỏ mọc với tốc độ ai đơn vị/giây (ban đầu tất cả bằng 0). Nông dân John bắt đầu tại đồng cỏ 1 và phải thăm tất cả các đồng cỏ để bón phân. Khi đến đồng cỏ có x đơn vị cỏ, anh cần x đơn vị phân bón (chỉ cần bón lần đầu thăm).

Tham số T xác định FJ phải quay về đồng cỏ 1 (T=0) hay được kết thúc ở bất kỳ đâu (T=1).

Hãy tìm thời gian tối thiểu và lượng phân bón tối thiểu cho thời gian đó.

Dữ liệu vào

  • Dòng 1: Hai số nguyên NT (2N2·105, T{0,1}).
  • Dòng i (2iN): Hai số nguyên piai (1pi<i, 1ai108) — cha của đỉnh i và tốc độ mọc cỏ.

Dữ liệu ra

Hai số nguyên cách nhau bởi dấu cách: thời gian tối thiểu và lượng phân bón tối thiểu cho thời gian đó.

Ràng buộc

  • 2N2·105
  • T{0,1}
  • 1ai108

Ví dụ

Input Output Giải thích
5 0
1 1
1 2
3 1
3 4
8 21 Phải quay về gốc. DFS tối ưu tốn 2(N1)=8 giây. Sắp xếp thứ tự thăm con tối ưu cho phân bón tổng 21.
5 1
1 1
1 2
3 1
3 4
6 29 Không cần quay về. Tiết kiệm được đường đi dài nhất, tổng 6 giây, phân bón 29.

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