Trò chơi với hai cây
Đề bài
Mô tả
Ta xét hai cây có gốc. Ban đầu mỗi cây chỉ gồm đúng một đỉnh mang số hiệu , chính là gốc của cây đó. Mỗi cạnh của cây được gắn một chữ cái Latin thường.
Với một cây, dãy đỉnh () được gọi là đường đi xuôi nếu với mọi từ đến , đỉnh là cha trực tiếp của đỉnh . Viết lần lượt các chữ cái trên các cạnh của đường đi này theo thứ tự từ đến , ta được một xâu tương ứng với đường đi xuôi đó (khi xâu này rỗng).
Tương tự, dãy đỉnh () được gọi là đường đi ngược nếu với mọi từ đến , đỉnh là con trực tiếp của đỉnh . Xâu tương ứng cũng được viết theo thứ tự từ đến (khi xâu này rỗng).
Cho thao tác, mỗi thao tác gồm ba giá trị :
- là chỉ số cây được thao tác ( hoặc );
- là số hiệu một đỉnh đang có trong cây đó;
- là một chữ cái Latin thường.
Thao tác này thêm vào cây một đỉnh mới mang số hiệu , trong đó là số đỉnh hiện tại của cây , và nối đỉnh với đỉnh mới bằng một cạnh mang chữ cái . Như vậy đỉnh mới là con trực tiếp của .
Bộ ba số nguyên có thứ tự được gọi là một bộ ba đẹp nếu:
- , với là số đỉnh hiện tại của cây thứ nhất;
- , với là số đỉnh hiện tại của cây thứ hai;
- trong cây thứ hai tồn tại đường đi xuôi với và ;
- xâu tương ứng với đường đi xuôi từ đến trong cây thứ hai bằng đúng xâu tương ứng với đường đi ngược từ đỉnh về đỉnh trong cây thứ nhất.
Cả hai đường đi nói trên, nếu tồn tại, đều là duy nhất. Lưu ý rằng được chấp nhận và khi đó xâu tương ứng là xâu rỗng.
Hãy tính số bộ ba đẹp sau mỗi thao tác.
Dữ liệu vào
- Dòng đầu chứa số nguyên là số thao tác.
- dòng tiếp theo, mỗi dòng chứa một thao tác dưới dạng
t v c, theo đúng thứ tự thực hiện.
Dữ liệu ra
In ra đúng dòng, dòng thứ chứa một số nguyên là số bộ ba đẹp sau khi thực hiện thao tác thứ .
Ràng buộc
- số đỉnh hiện tại của cây
- là chữ cái Latin thường
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 1 2 1 z |
2 | Cây thứ hai có thêm đỉnh . Hai bộ ba đẹp là và : đỉnh cho xâu rỗng, và cũng cho xâu rỗng. |
| 2 1 1 o 2 1 o |
1 3 |
Sau thao tác đầu chỉ có . Sau thao tác thứ hai xuất hiện thêm (cùng xâu o) và (xâu rỗng). |
| 5 1 1 a 2 1 a 1 2 b 2 1 b 2 3 a |
1 3 3 4 7 |
Thao tác thứ ba không tạo thêm bộ ba nào. Thao tác cuối tạo thêm ba bộ ba , và : xâu ngược từ đỉnh của cây thứ nhất là ba, trùng với xâu xuôi từ đỉnh đến đỉnh của cây thứ hai. |
Bình luận