trang chủ / đề bài / mooriokart

Đua Xe Rừng

Đề bài

Mô tả

Có N đỉnh và M cạnh tạo thành một rừng (đồ thị không có chu trình), với K=N−M cây. Mỗi cạnh có một độ dài không âm và mỗi đỉnh có ít nhất một cạnh nối.

Bessie muốn xây một vòng đua bằng cách:

  • Chọn một đường đi (giữa hai đỉnh phân biệt) trong mỗi cây.
  • Nối K cây theo một thứ tự vòng tròn bằng K cạnh mới, mỗi cạnh có độ dài X.

Tổng độ dài vòng đua = tổng độ dài K đường đi + K·X. Hai vòng đua khác nhau nếu có hai đỉnh kề nhau ở vòng đua này nhưng không kề nhau ở vòng đua kia.

Hãy tính tổng độ dài của tất cả các vòng đua có tổng độ dài ≥Y, lấy kết quả modulo 109+7.

Dữ liệu vào

  • Dòng đầu: bốn số nguyên N, M, X, Y (1≤N≤1500, 1≤M≤N−1, 0≤X,Y≤2500)
  • M dòng tiếp theo: mỗi dòng gồm Ai, Bi, Di (cạnh nối đỉnh Ai và Bi có độ dài Di, với 0≤Di≤2500)

Dữ liệu ra

Tổng độ dài tất cả các vòng đua hợp lệ, modulo 109+7.

Ràng buộc

  • 1≤N≤1500, 1≤M≤N−1
  • 0≤X,Y≤2500
  • 0≤Di≤2500
  • Đồ thị là rừng, mỗi đỉnh có ít nhất một cạnh nối

Ví dụ

Input Output Giải thích
5 3 1 12
1 2 3
2 3 4
4 5 6
54 K=2 cây: cây {1,2,3} (đường đi dài 3, 4, hoặc 7) và cây {4,5} (đường đi dài 6). Cạnh nối dài X=1, tổng cạnh nối 2. Các vòng đua dài ≥12: 4+6+2=12 (×2), 7+6+2=15 (×2). Tổng =12+12+15+15=54.
4 2 2 8
1 2 3
3 4 4
22 K=2 cây: {1,2} (đường đi dài 3) và {3,4} (đường đi dài 4). Cạnh nối dài X=2, tổng cạnh nối =4. Vòng đua dài 3+4+4=11≥8. Có 2 vòng đua khác nhau (hướng đi khác nhau), tổng =11×2=22.

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