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

المپدیا

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

ابزار کاربر

ابزار سایت


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

کارمند تنبل

n کار با زمان‌های پردازش t1,t2,,tn به یک کارمند تنبل محول شده‌اند. موعد شروع کار iام ai و موعد اتمام آن di است. کار iام فقط در بازه‌ی [ai,di] قابل انجام است و به محض شروع هر کار باید تا اتمام کار آن را بدون وقفه انجام داد. ai وdi و ti طبیعی هستند و می‌دانیم diai<2ti.

اما چون کارمند تنبل است، سعی می‌کند همیشه کم‌ترین زمان ممکن را کار کند. این کارمند رئیسی دارد که مرتبا در هر لحظه او را تحت نظر دارد: اگر ببیند کارمند بیکار است در حالی که کاری قابل اجرا وجود دارد، او را اخراج می‌کند. در لحظه‌ی t به کاری «قابل اجرا» می‌گوییم که از موعد شروع آن (ai) گذشته باشد و اگر در همین لحظه‌ی t شروع به انجام این کار کنیم، حداکثر تا موعد اتمام آن (di) تمام شود.

این کارمند تنبل سعی دارد به نحوی زیرمجموعه‌ای از کارها را انتخاب کند تا اولا اخراج نشود و ثانیا مجموع زمان‌های کارهایی که انجام می‌دهد کمینه شود.

الگوریتمی چند جمله‌ای بر حسب D (D=maxi=1ndi) و n ارائه کنید که این زیرمجموعه از کارها و زمان اجرای هر کدام از کارهای انتخابی را برای کارمند مشخص کند.

پاسخ


ابزار صفحه