Tô màu khối Rubik (bản khó)
Đề bài
Mô tả
Cho một cây nhị phân hoàn chỉnh gồm đỉnh: mỗi đỉnh với có đúng hai con là đỉnh và ; các đỉnh từ đến là lá (không có con).
Bạn cần tô màu mọi đỉnh của cây bằng màu của khối Rubik: Trắng, Vàng, Xanh lá, Xanh dương, Đỏ, Cam.
Một cách tô màu được gọi là hợp lệ nếu mọi cạnh nối hai đỉnh có màu là hai mặt kề nhau trên khối Rubik. Cụ thể, các cặp màu đối nhau (không kề nhau) là: Trắng và Vàng, Xanh lá và Xanh dương, Đỏ và Cam. Hai đỉnh nối bởi một cạnh không được tô cùng màu, cũng không được tô hai màu đối nhau. Nói cách khác, với mỗi màu có đúng màu kề với nó.
Tuy nhiên, có đỉnh đặc biệt đã được tô màu sẵn; các đỉnh này bắt buộc phải giữ nguyên màu đã cho.
Hãy đếm số cách tô màu hợp lệ toàn bộ cây. Hai cách tô là khác nhau nếu có ít nhất một đỉnh được tô màu khác nhau. Vì kết quả có thể rất lớn, hãy in ra kết quả theo modulo .
Dữ liệu vào
- Dòng đầu chứa số nguyên : số tầng của cây nhị phân hoàn chỉnh.
- Dòng thứ hai chứa số nguyên : số đỉnh đã được tô màu sẵn.
- dòng tiếp theo, mỗi dòng chứa một số nguyên và một xâu : chỉ số đỉnh và màu của đỉnh đó. Xâu là một trong sáu xâu white, yellow, green, blue, red, orange (lần lượt tương ứng với Trắng, Vàng, Xanh lá, Xanh dương, Đỏ, Cam).
Mỗi đỉnh xuất hiện nhiều nhất một lần trong dữ liệu vào.
Dữ liệu ra
In ra một số nguyên: số cách tô màu hợp lệ theo modulo .
Ràng buộc
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 3 2 5 orange 2 white |
1024 | Cây có đỉnh. Đỉnh đã là Trắng và đỉnh đã là Cam (hai màu này kề nhau nên không mâu thuẫn). Năm đỉnh còn lại là ; mỗi đỉnh có đúng lựa chọn khi màu của đỉnh kề phía trên đã cố định, cho cách. |
| 2 2 1 white 2 white |
0 | Đỉnh và đỉnh nối với nhau nhưng cùng màu Trắng, nên không có cách tô nào hợp lệ. |
| 10 3 1 blue 4 red 5 orange |
328925088 | Cây có đỉnh với ba đỉnh đã cố định màu. Kết quả được lấy theo modulo . |
Bình luận