#LAISIR28. 鏡之神樹 · 動態審判
鏡之神樹 · 動態審判
🧮 題目名稱:鏡之神樹 · 動態審判
📝 題目背景:
在神秘的鏡之森林中,精靈們正小心翼翼地建造一棵傳說中的神樹。
相傳,只有在任何時刻都維持鏡像對稱的神樹,才能獲得女神的賜福。每當新的一片枝葉被接上,女神便會施行一次鏡像審判。
若神樹呈現鏡像對稱(左右子樹結構與節點值皆鏡像),光芒降臨;反之,黑暗蔓延。
你的任務是即時回應每一次審判,判斷目前整棵神樹是否對稱。
🎯 任務說明:
請設計一個程式,能夠根據動態的節點插入操作,即時判斷目前整棵神樹是否鏡像對稱。
📥 輸入格式:
第一行一個整數 q
(1 ≤ q ≤ 10⁵),表示操作的總數。
接下來 q
行,每行為下列兩種操作之一:
ADD <parent> <side> <value>
或
QUERY
-
ADD
:將值為<value>
的新節點,接到節點<parent>
的<side>
方向。<parent>
:節點編號(正整數)<side>
:L
表示左子,R
表示右子<value>
:節點的字串值(不含空白,長度不超過 10)
-
QUERY
:進行一次鏡像審判(判斷目前整棵樹是否對稱)
注意:
- 編號為
0
表示這是第一個節點(作為根節點),僅第一次出現時使用。- 每個節點最多插入一次左子與右子,不會有重複或無效操作。
- 初始樹為空。
📤 輸出格式:
對於每個 QUERY
操作,輸出一行:
-
若目前整棵神樹為對稱二元樹,輸出:
光芒降臨
-
否則輸出:
黑暗蔓延
📘 輸入範例:
7
ADD 0 L a
ADD 1 L b
ADD 1 R b
ADD 2 L x
ADD 3 R x
QUERY
ADD 2 R y
QUERY
📗 輸出範例:
光芒降臨
黑暗蔓延
📊 資料範圍與限制:
- 操作次數
q
滿足1 ≤ q ≤ 10⁵
- 節點編號為 1 至 q(每新增一節點,給它下一個編號)
- 每個節點值為長度不超過 10 的字串
- 操作順序合法(即不會引用未定義的節點)
Related
In following homework: