Is page par assume kiya gaya hai ki tumne kuch nahi dekha. Parent note Dynamic Programming padhne se pehle, tumhe neeche diya hua chota sa alphabet fluently aana chahiye. Hum har symbol ko pichle symbol ke upar build karte hain.
Yahan har symbol ek word ke around ghoomta hai: subproblem.
Ise ek nesting doll ki tarah socho: badi doll (poora problem) ke andar choti identical dolls (subproblems) hoti hain. Jab tak tum problems ko is nazar se nahi dekhte, DP samajh nahi aayega.
Topic ko yeh kyun chahiye: neeche diye gaye baaki saare symbols subproblems ko naam dene, count karne, ya store karne ke tarike hain. Subproblem nahi, toh DP nahi.
Yahan "+" kyun? Kyunki Fibonacci mein poora literally do chote answers ka sum hota hai. Alag problems alag tarah combine karti hain (baad mein max dekhenge) — combining rule hi har DP ka dil hai.
Recursion ko ek tree jो neeche ki taraf badhta hai socho: upar ek call, choti calls mein split hoti hai, jo aur split hoti hain, jab tak har branch ek base case (leaf) tak nahi pahunch jaati.
Phir se tree figure (s02) dekho. Har node jo F(3) label se marked hai use dhundho. F(5) ke tree mein, F(3)do baar aata hai, F(2)teen baar aata hai. Wahi repeats hain jiske liye DP exist karta hai.
Yeh gap — bahut saare nodes, thode distinct — hi woh exploitable waste hai. Detailed tree-counting Recursion Trees mein hai.
Topic ko yeh kyun chahiye: DP ka poora payoff hai "thode distinct wale solve karo, saare repeats skip karo." Jab tak repeats nahi dikhte, payoff nahi dikheга.
Recurrence se pehle, iske symbols se milte hain. Knapsack Problem mein hmare paas items ki ek list hai; item number i ke paas hai:
vi = item i ki value (yeh kitna worth hai),
wi = item i ka weight (yeh kitni jagah leta hai),
c = backpack mein abhi remaining capacity.
Greedy Algorithms se contrast karo (jo locally best option ek baar le leta hai aur kabhi reconsider nahi karta) aur Divide and Conquer se (jiske subproblems sab distinct hain, toh sticky notes help nahi karte). Doosre classic optimal-substructure problems: Longest Common Subsequence, Bellman-Ford.
Right side cover karo aur parent note kholne se pehle answer bolo.
F(n) ka ek sentence mein matlab kya hai?
Jab input ki size/value n ho tab problem ka answer — ek machine jise tum n dete ho aur ek answer milta hai.
Fibonacci ke F ka domain kya hai?
Non-negative integers n∈N0={0,1,2,…} — na fractions, na negatives.
Subproblem kya hota hai?
Wahi problem ki ek choti copy (ek choti nesting doll).
Base case kya hai aur yeh kyun zaroori hai?
Sabse chota input jiska answer directly pata ho; iske bina recursion kabhi nahi rukti (aur yeh n ko zero se neeche jaane se rokti hai).
Recursion tree mein "overlapping subproblems" kaisa dikhta hai?
Wahi node label tree mein ek se zyada jagah dikhna.
F(5) ke distinct subproblems, aur node count kaise badhta hai?
Sirf n+1=6 distinct, par total node count Θ(φn)≈1.618n ki tarah badhta hai — exponential.
O(g(n)) formally kya matlab hai?
Running time ek fixed multiple ke neeche rehti hai yardstick function g(n) ke, jab n kaafi bada ho — g ek ceiling hai.
dp[i][c] kya hai?
2-D table ka ek cell jo i aur c se indexed subproblem ka answer store karta hai.
Memoization vs tabulation ek ek line mein?
Memoization = top-down recursion jo pehle table check karta hai (lazy); tabulation = bottom-up loop jo sabse chote pehle fill karta hai (eager).
max(a,b) kya karta hai, aur DP mein kab use hota hai?
a aur b mein se bada return karta hai; jab problem best option choose karti hai tab use hota hai (jaise knapsack mein take-or-skip).
Knapsack mein vi, wi, c, aur K(i,c) kya hain?
vi = item i ki value; wi = uska weight; c = bacha hua capacity; K(i,c) = items 1..i use karke best value jab room c ho.
Knapsack recurrence teen cases mein kyun split hota hai?
i=0 (koi item nahi), wi>c (item fit nahi hota — skip, negative index se bachata hai), aur wi≤c (take/skip mein se better choose karo) handle karne ke liye.
Optimal substructure plain words mein batao.
Poore ka best answer uske parts ke best answers se build hota hai.
Combining operator kabhi + aur kabhi max kyun hota hai?
Yeh match karta hai jo problem poochti hai — Fibonacci do answers add karta hai, knapsack do options mein se best pick karta hai.
Master formula Time = (#subproblems)×(work each) kahan se aata hai?
Har table cell ki fill-cost sum karne se; agar har cell same cost le, toh sum ban jaata hai count × work-per-cell.