KonkurStudy

سوال ۸۴ کنکور ارشد علوم کامپیوتر ۱۴۰۱

اهمیت
۰/۵

فرض کنید f:N→Nf:\mathbb{N}\to\mathbb{N} یک تابع باشد که برای هر ii، محاسبه f(i)f(i) در زمان Θ(i)\Theta(\sqrt{i}) ممکن باشد. همچنین برای هر ii و jj که 1≤i≤j≤n1\le i\le j\le n تعریف می‌کنیم:

g(i,j)={f(i)اگر i=jmax⁡i<k≤j{ g(i,k−1)+g(k,j) }اگر i<jg(i,j)=\begin{cases} f(i) & \text{اگر } i=j \\ \max_{i<k\le j}\{\,g(i,k-1)+g(k,j)\,\} & \text{اگر } i<j \end{cases}

محاسبه g(1,n)g(1,n) با الگوریتم پویا (دینامیکی) ساده‌ای که از رابطه بالا حاصل می‌شود، از چه مرتبه زمانی است؟

#dynamic-programming#recurrence#time-complexity#interval-dp#optimal-substructure#asymptotic-analysis