سوال ۴

یک درخت ریشه دار ‎$n$‎ رأسی، درختی ‎ $n$‎رأسی است که یک رأس آن، به عنوان ریشه مشخّص شده‌است. عمق یک رأس در یک درخت ریشه‌دار ‎(کوتاه‌ترین)‎ فاصله‌ی آن رأس تا ریشه است.

یک روز افشین تصمیم می‌گیرد از روی درخت‌های ریشه دار ‎$n$‎ رأسی، رشته‌هایی به طول ‎$2n-2$‎ از صفر و یک بسازد. او برای ساختن یک رشته از روی یک درخت ریشه‌دار، با یک رشتهٔ تهی شروع کرده و به این صورت عمل می‌کند که ریشه را رنگ کرده و بقیهٔ رئوس را بدون رنگ در نظر می‌گیرد. سپس از ریشه شروع کرده و در هر مرحله اگر در رأس ‎$v$‎ بود:

برای مثال یک مسیر به طول سه که یک رأس غیر انتهایی آن به عنوان ریشه انتخاب شده (مطابق شکل)، یک درخت ریشه‌دار چهاررأسی است که فقط دو رشتهٔ ‎$101100$‎ و ‎$110010$‎ از روی آن ساخته می‌شوند. ‎

صبح امروز افشین دو رشته‌ی ‎$S_1$‎ و ‎$S_2$‎ به‌طول ‎$2n-2$‎ از صفر و یک به شما داده و ادعا می‌کند که این ‎$2$‎ رشته را از روی دقیقاً یک درخت ساخته است. الگوریتمی از ‎${\cal O}(n^2\lg{n})$‎ بدهید که با گرفتن ‎$S_1$‎ و ‎$S_2$‎، مشخص کند که ‎«آیا درخت ریشه‌داری وجود دارد که هر دو این رشته‌ها بتوانند از روی آن ساخته شوند یا نه؟»‎ برای مثال این الگوریتم برای رشته‌های ‎$110010$‎ و ‎$101100$‎ باید جواب ‎«صحیح»‎ و برای رشته‌های ‎$110010$‎ و ‎$111000$‎ باید جواب ‎«غلط»‎ را برگرداند.

الگوریتم خود را تحلیل و اثبات کنید.