Loading [MathJax]/jax/output/HTML-CSS/jax.js

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی تابستان:دوره ی ۱۷:الگوریتم ها:سوال ۶

سوال ۶

داده‌ساختار ‎ Disjoint-Set‎ با ‎Path-Compression‎ را در به‌ترین حالت نظر بگیرید. می‌خواهیم این داده ساختار را طوری تغییر دهیم تا علاوه بر اعمال ‎Find(x)‎ و Merge(S1‎, ‎S2)‎ بتواند عمل Historical-Find(x,y,t)‎ را هم انجام دهد. این عمل به این معنی است که آیا اشیاء ‎x‎ و ‎y‎ در زمان ‎t‎ در یک مجموعه بوده‌اند یا خیر. منظور از زمان ‎t‎، زمانی است که ‎t‎امین عمل برروی این داده‌ساختار انجام می‌شود.

اگر تعداد اعضای درون داده‌ساختار ‎n‎ باشد، نشان دهید چگونه می‌توان با حافظه مصرفی ‎O(n)‎ برای کلّ داده‌ساختار و بدون تغییر در زمان اجرای دو عمل دیگر، کاری کرد تا هر عمل ‎ Historical-Find‎ در زمان ‎O(lgn)‎ پاسخ داده شود. روش خود را دقیق و با تحلیل ارائه کنید.


ابزار صفحه