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

Chia đôi trọng số cạnh

Đề bài

Mô tả

Cho một cây có gốc gồm n đỉnh, đỉnh 1 là gốc. Mỗi cạnh i có trọng số wi (số nguyên dương).

Trọng số của đường đi từ đỉnh u đến đỉnh v là tổng trọng số các cạnh trên đường đi giữa hai đỉnh đó.

Bạn có thể thực hiện một dãy các phép biến đổi (có thể không thực hiện phép nào). Mỗi phép biến đổi: chọn một cạnh và chia trọng số của nó cho 2, làm tròn xuống (nghĩa là wi:=wi/2).

Nhiệm vụ: tìm số phép biến đổi tối thiểu để tổng trọng số các đường đi từ gốc tới mỗi không vượt quá S. Tức là gọi w(u,v) là trọng số đường đi từ u tới v, cần đạt

vw(1,v)S.

Một đỉnh được gọi là nếu nó không có đỉnh con nào trong cây có gốc (đỉnh gốc không được coi là lá khi n2).

Bạn phải xử lý t bộ dữ liệu độc lập.

Dữ liệu vào

Dòng đầu chứa số nguyên t (1t2·104) — số bộ dữ liệu.

Với mỗi bộ dữ liệu:

  • Dòng đầu chứa hai số nguyên nS (2n105; 1S1016).
  • n1 dòng tiếp theo, mỗi dòng chứa ba số nguyên vi, ui, wi (1vi,uin; 1wi106) mô tả một cạnh nối hai đỉnh viui với trọng số wi.

Tổng n trên tất cả các bộ dữ liệu không vượt quá 105.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra một số nguyên — số phép biến đổi tối thiểu cần thực hiện.

Ràng buộc

  • 1t2·104
  • 2n105
  • 1S1016
  • 1wi106
  • Tổng n trên tất cả bộ dữ liệu không vượt quá 105

Ví dụ

Input Output Giải thích
3
3 20
2 1 8
3 1 7
5 50
1 3 100
1 5 10
2 3 123
5 4 55
2 100
1 2 409
0
8
3
Bộ 1: tổng đường đi tới lá là 8+7=1520, không cần thao tác. Bộ 2: cần 8 phép chia. Bộ 3: cây một đường thẳng, 40920410251100 sau 3 phép chia.
3
3 20
2 1 8
3 2 7
5 50
1 3 100
1 5 10
2 3 123
5 4 55
2 100
1 2 409
0
8
3
Cây bộ 1 giờ là đường thẳng 123: đường tới lá 3 có trọng số 8+7=1520.

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