Đua Xe Rừng
Nộp bài giải
Điểm:
1,00 (OI)
Giới hạn thời gian:
4.0s
Python 3
5.0s
Giới hạn bộ nhớ:
256M
Đầu vào:
stdin
Đầu ra:
stdout
Tác giả:
Dạng bài
Ngôn ngữ cho phép
C++, Go, Java, Kotlin, Pascal, Python, Scratch
Có đỉnh và cạnh tạo thành một rừng (đồ thị không có chu trình), với cây. Mỗi cạnh có độ dài dương 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 cây theo một thứ tự vòng tròn bằng cạnh mới, mỗi cạnh có độ dài .
Tổng độ dài vòng đua = tổng độ dài đường đi + . 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 , lấy kết quả modulo .
Dữ liệu vào
- Dòng đầu: bốn số nguyên , , , (, , )
- dòng tiếp theo: mỗi dòng gồm , , (cạnh nối đỉnh và có độ dài )
Dữ liệu ra
Tổng độ dài tất cả các vòng đua hợp lệ, modulo .
Ràng buộc
- ,
- Đồ 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 | cây: cây (đường đi dài 3, 4, hoặc 7) và cây (đường đi dài 6). Cạnh nối dài , tổng cạnh nối . Các vòng đua dài : (×2), (×2). Tổng . |
| 4 2 2 8 1 2 3 3 4 4 |
22 | cây: (đường đi dài 3) và (đường đi dài 4). Cạnh nối dài , tổng cạnh nối . Vòng đua dài . Có 2 vòng đua khác nhau (hướng đi khác nhau), tổng . |
Bình luận