Cây có cạnh đen
Đề bài
Mô tả
Cho một cây (đồ thị vô hướng liên thông không có chu trình) gồm đỉnh. Mỗi trong số cạnh của cây được tô màu đen hoặc đỏ.
Bạn được cho một số nguyên . Xét các dãy gồm đỉnh. Một dãy được gọi là tốt nếu nó thỏa mãn điều kiện sau:
- Ta đi một đường trên cây (có thể đi qua cùng một cạnh hoặc đỉnh nhiều lần), bắt đầu từ và kết thúc ở : xuất phát từ , đi đến theo đường đi ngắn nhất giữa và , rồi đi đến theo cách tương tự, và cứ thế cho đến khi đi hết đường đi ngắn nhất giữa và .
- Nếu trong quá trình đi ta đi qua ít nhất một cạnh màu đen, thì dãy đó là tốt.
Có tất cả dãy đỉnh. Hãy đếm xem có bao nhiêu dãy trong số đó là tốt. Vì kết quả có thể rất lớn, hãy in ra phần dư khi chia cho .
Dữ liệu vào
- Dòng đầu tiên chứa hai số nguyên và — kích thước cây và độ dài dãy đỉnh.
- Mỗi trong dòng tiếp theo chứa ba số nguyên , và , trong đó và là hai đầu mút của cạnh, còn là màu của cạnh ( là cạnh đỏ, là cạnh đen).
Dữ liệu ra
In ra một số nguyên — số dãy tốt, lấy phần dư khi chia cho .
Ràng buộc
- Các cạnh tạo thành một cây.
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 4 4 1 2 1 2 3 1 3 4 1 |
252 | Mọi cạnh đều đen. Trong dãy, chỉ có dãy không tốt là , , , (không di chuyển nên không qua cạnh đen). Đáp án là . |
| 4 6 1 2 0 1 3 0 1 4 0 |
0 | Mọi cạnh đều đỏ nên không có dãy nào đi qua cạnh đen. |
| 3 5 1 2 1 2 3 0 |
210 | Có dãy. Các dãy chỉ nằm trong thành phần đỏ (tức mọi phần tử thuộc ) không đi qua cạnh đen, có dãy như vậy; ngoài ra đỉnh đứng một mình cho dãy. Đáp án là . |
Bình luận