سوال ۲
الگوریتم زیر را درنظر بگیرید:
- آرایهی $A$ به طول $n$ را ورودی بگیر.
- اگر آرایهی $A$ مرتب بود، به مرحلهی ۷ برو.
- دو آرایهی $X = A[1\cdots\lfloor\frac{n}{2}\rfloor]$ و $Y = A[\lfloor\frac{n}{2}\rfloor+1\cdots n]$ را درنظر بگیر.
- عدد صحیح $t$ را ورودی بگیر؛ اگر $t$ عددی زوج بود، به مرحلهی ۶ برو.
- آرایهی $A$ را برابر با $X$ و مقدار $n$ را برابر با $\lfloor\frac{n}{2}\rfloor$ قرار بده. سپس به مرحلهی ۲ برو.
- آرایهی $A$ را برابر با $Y$ و مقدار $n$ را برابر با $n-\lfloor\frac{n}{2}\rfloor$ قرار بده. سپس به مرحلهی ۲ برو.
- آرایهی $A$ را خروجی بده.
- پایان.
منظور از $A[l\cdots r]$ بازهی $l$ تا $r$ از آرایهی $A$ (شامل خود $l$ و $r$) است؛ برای مثال اگر $A = \langle2, 1, 3, 5, 4\rangle$ باشد $A[2\cdots4] = \langle1, 3, 5\rangle$ میشود. اگر مقادیر $t$ را به صورتی ورودی دهیم که طول آرایهی نهایی بیشینه شود، به ازای چند جایگشت اولیه از اعداد ۱ تا ۸ طول آرایهی نهایی حداقل برابر با ۲ خواهد بود؟
- ۲۰۱۶۰
- ۴۰۳۲۰
- ۳۴۵۱۰
- ۳۰۲۴۰
- ۳۷۸۰۰
پاسخ
گزینهی ۵ درست است.
میدانیم تنها جایگشتهایی مطلوب نیستند که در پایان الگوریتم فقط یک عدد باقی مانده باشد. اگر تعداد این جایگشتها را به دست آوریم، میتوانیم به کمک اصل متمم به پاسخ نهایی برسیم. برای این کار کافی است جایگاهها را به ۴ دستهی دوتایی تقسیم کنیم و مطمئن شویم هیچکدام از جفتها به صورت صعودی مرتب نشده باشند. سپس دو عدد موجود در هر جفت را انتخاب کرده و با ترتیب نزولی آنها را قرار میدهیم: $$\binom{8}{2}\times \binom{6}{2} \times \binom{4}{2} \times \binom{2}{2} = 2520$$
همچنین تعداد کل جایگشتهای اعداد ۱ تا ۸ برابر با $8! = 40320$ است و در نتیجه پاسخ نهایی مسئله برابر با $40320 - 2520 = 37800$ میشود.
| < سوال قبل | سوال بعد > |