3.7.14 · D5 · HinglishAlgorithm Paradigms

Question bankDP problems — rod cutting, egg drop, DP on trees

2,148 words10 min read↑ Read in English

3.7.14 · D5 · Coding › Algorithm Paradigms › DP problems — rod cutting, egg drop, DP on trees


True or false — justify karo

Recall Reveal all

Rod cutting mein cuts integer positions par hi honi chahiye. ::: True — price array sirf integer lengths ke liye values define karta hai, toh "length 2.5 ka piece" ki koi defined price nahi hai; poora model integers par hi hai. Rod cutting mein leftmost piece ko par loop karna kuch cuttings miss karta hai kyunki yeh rightmost piece kabhi fix nahi karta. ::: False — har cutting ka exactly ek leftmost piece hota hai, toh saari leftmost lengths par iterate karna aur baaki par recurse karna har arrangement cover kar leta hai; rightmost fix karna wohi baat kahne ka ek redundant doosra tarika hoga. Egg drop ka answer kabhi se zyada nahi ho sakta. ::: True — ek-egg strategy (floor by floor scan) hamesha kaam karti hai aur zyada se zyada drops lagti hai, toh zyada eggs sirf help kar sakte hain; . Unlimited eggs ke saath, egg drop binary search mein collapse ho jaata hai aur answer hota hai. ::: True — jab eggs wafir hon toh break kabhi catastrophic nahi, isliye har drop baaki candidate floors plus "no floor" outcome ko half mein split kar sakta hai; drops mein at most outcomes distinguish hote hain, aur possible thresholds hain (floors ya "kabhi nahi tutta"), toh chahiye, yaani . DP on trees mein do states aur isliye chahiye kyunki ek node ka optimal contribution ek aisi choice par depend karta hai jo uske parent ne abhi tak nahi ki. ::: True — parent ko jaanna hai "agar main tumhe loon toh tumhara best kya hai" versus "agar na loon toh", toh child dono publish karta hai aur parent choose karta hai. Tree par MWIS ko greedily solve kiya ja sakta hai hamesha pehle leaves pick karke. ::: False in general — leaves pick karna ek heuristic hai jo haar sakta hai; har subtree ke liye include-vs-exclude compare karne waala do-state DP hi optimality guarantee karta hai. Rod-cutting recurrence essentially unbounded knapsack ka disguise hai. ::: True — har length ek "weight" aur value waala reusable item hai, capacity ; dekho Knapsack Problem. Top-down rod-cutting recursion ko memoize karna jo answer return hota hai use change karta hai. ::: False — memoization sirf recomputation hatata hai; value plain recursion jitni hi identical hai, bas mein chalta hai exponential time ki jagah.


Error dhundho

Recall Reveal all

"Rod cutting base case: kyunki length-1 rod cut nahi ho sakti." ::: Error — cut karna zaroori nahi hai. : "zero cuts" option (poora piece bechna) hamesha allowed hai, toh length 1 ki price ke barabar hai, 0 nahi. "Egg drop: jab floor par egg breaks karta hai, toh sub-problem neeche floors ka hai." ::: Error — break ka matlab hai threshold par ya neeche hai, bacha floors test karne ke liye (floor khud ab ek breaking floor jaana gaya), toh yeh hai. "Egg drop: break case aur survive case ka min lo, kyunki hum better outcome ki umeed rakhte hain." ::: Error — tum control nahi kar sakte kya hoga; adversary (worst case) decide karta hai, toh tumhe dono ka max lena hoga, phir par minimize karo. "MWIS: ." ::: Error — agar included hai, toh koi bhi child included nahi ho sakta, toh har child state 0 par forced hai: . sirf mein aata hai. "MWIS: answer hai kyunki root ko include karna sabse zyada weight pakadta hai." ::: Error — root ko bahar rakhna better ho sakta hai; answer hai . "Tree par DP mein nodes ko root-first (pre-order) process karna padta hai taaki root ka answer ready ho." ::: Error — ek node ko pehle apne children ke answers chahiye, toh tum leaves-up (post-order / DFS return) process karte ho; root last compute hota hai, pehle nahi. "Rod cutting hai kyunki tum size ka ek array bharte ho." ::: Error — entry fill karne mein trials tak ka inner loop lagta hai, toh total hai, nahi.


Why questions

Recall Reveal all

DP in teeno problems ke liye specifically brute force se kyun jeetata hai? ::: Kyunki wohi subproblem (chhoti rod / kam eggs-floors / same subtree) naive tree mein exponentially baar repeat hota hai; har ek ko ek baar solve karke cache karna exponential ko polynomial mein badal deta hai. Tree case kyun hai jabki rod cutting hai? ::: Tree mein har edge exactly ek baar touch hoti hai (har child apne parent ko ek baar feed karta hai), jabki rod cutting har par saari chhoti lengths re-scan karti hai, ek quadratic double loop deta hai. Egg drop par kyun use karta hai lekin outcomes par kyun? ::: Tum apne fayde ke liye drop floor choose karte ho (min), lekin tum choose nahi kar sakte ki yeh tutega ya nahi — nature/adversary bura branch choose karta hai (max). Hum yahan rod-cutting item-once logic reuse kyun nahi kar sakte — yeh unbounded kyun hai? ::: Length- ka piece baar baar cut out ho sakta hai (length-6 rod teen length-2 pieces ho sakti hai), toh har "item" reusable hai, 0/1 knapsack ki tarah nahi; isliye recurrence par recurse karta hai (wahi rod phir se), item hatake nahi. "Dual" egg-drop view zyada fast kyun kaam karta hai? ::: Yeh question flip karta hai " drops aur eggs se main kitne floors clear kar sakta hun?"; drop break-branch (), survive-branch (), aur current floor mein floors split karta hai. Dual se recover kaise karte hain? ::: Kyunki strictly mein increasing hai, " floors clear karne wale fewest drops" matlab hai "pehla jahan "; scan karo aur pehle wale par ruko jo tak pahunche — woh hi hai, kyunki lekin . MWIS mein subtrees cleanly add kyun hote hain lekin ek parent–child edge par "sirf add karna" fail kyun karta hai? ::: Sibling subtrees disjoint hain (shared nodes nahi, unke beech adjacency nahi) toh unke optima add hote hain; parent aur child adjacent hain, toh dono ek saath pick nahi ho sakte — yahi single constraint hai jo do states handle karti hain. Greedy kuch problems ke liye sahi kyun hai lekin MWIS ke liye nahi? ::: Greedy Algorithms tabhi kaam karte hain jab local best globally optimal guaranteed ho (matroid-like structure); MWIS mein yeh nahi hai kyunki ek heavy node neighbors ko block karta hai jinका combined weight use exceed kar sakta hai.


Edge cases

Recall Reveal all

ke saath rod cutting: kya hai? ::: — ek empty rod koi revenue nahi deti; yeh base case har lambi recurrence ko anchor karta hai. Rod cutting jahan poora bechna hamesha jeetata hai — kya algorithm phir bhi cut karta hai? ::: Nahi — leftmost piece try karne par bachta hai, deta hai; agar woh max hai, toh cut[n]=n ek single (trivial) piece record karta hai, yaani koi real cut nahi. Single egg ke saath egg drop, , arbitrary : kya hai? ::: — ek egg bottom-up linear scan force karta hai (break permanent hai, toh tum koi floor skip nahi kar sakte), worst case mein drops lagte hain. eggs aur floors ke saath egg drop: kya hona chahiye? ::: Undefined / impossible () — koi eggs nahi toh tum koi floor test nahi kar sakte, toh koi finite strategy dhundhne ki guarantee nahi deti; sirf safe zero hai. floors ke saath egg drop: har ke liye kyun hai? ::: Kuch identify karna baaki nahi — zero floors matlab threshold question already resolved hai, toh egg count chahe kuch bhi ho, zero drops chahiye. Egg drop, exactly 1 floor: kyun hai aur 0 kyun nahi? ::: Tumhe abhi bhi confirm karna hai ki kya woh single floor ek breaking floor hai, jiske liye ek drop chahiye; building ka exist karna threshold jaanna nahi hai. Empty tree (zero nodes) par MWIS: answer kya hai? ::: — empty set ek valid independent set hai jiska total weight 0 hai; DFS kabhi nahi chalta, koi state set nahi hoti aur base return 0 hai. Single-node tree par MWIS: answer kya hai? ::: agar ; ek akela node ka koi neighbor nahi jo use block kare. Saare-negative weights ke saath MWIS: kya DP phir bhi kaam karta hai? ::: Haan — exclude state har node ko bahar rakh sakta hai (0 contribute karte hue), toh answer hai; "empty set" hamesha ek legal independent set hai. Ek path graph (ek degenerate "tree" jo ek line hai): kya tree-MWIS abhi bhi apply hoti hai? ::: Haan — ise ek end par root karo aur DFS karo; recurrence classic 1-D house-robber DP mein reduce ho jaati hai, kyunki har node ka at most ek child hota hai. Star graph, centre weight 10, chaar leaves weight 4: DP kya output karta hai aur greedy kyun fail karta hai? ::: DP output karta hai (saari chaar leaves), kyunki centre exclude karne par har leaf free ho jaati hai; greedy pehle centre (10) pakad leta hai, saari leaves block kar deta hai, aur haar jaata hai — do-state comparison yeh globally pakad leta hai.