# Source Map — 12 Dynamic Programming

এই folder-এ ব্যবহৃত প্রতিটা বাইরের concept, problem আর reference — কোথা থেকে এসেছে আর copying status কী, সব এখানে। সব explanation এই repo-র জন্য scratch থেকে লেখা; link-গুলো attribution আর গভীরে পড়ার জন্য দেওয়া।

| Concept / Problem | Source Type | Source Name | Link | How it is used | Copying status |
| --- | --- | --- | --- | --- | --- |
| Dynamic programming (general concept) | Encyclopedia | Wikipedia — Dynamic programming | [উৎস খুলুন](https://en.wikipedia.org/wiki/Dynamic_programming) | Background আর terminology check; আমাদের explanation original | original explanation |
| Memoization concept | Encyclopedia | Wikipedia — Memoization | [উৎস খুলুন](https://en.wikipedia.org/wiki/Memoization) | Background পড়াশোনা | official link only |
| Contest-oriented DP study path | Learning guide | USACO Guide — Intro to DP | [উৎস খুলুন](https://usaco.guide/gold/intro-dp) | আরও পড়ার recommendation; pattern-family framing | official link only |
| Climbing Stairs | Online judge | LeetCode 70 | [উৎস খুলুন](https://leetcode.com/problems/climbing-stairs/) | 5-step walkthrough + practice + implementation.py; task নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| House Robber | Online judge | LeetCode 198 | [উৎস খুলুন](https://leetcode.com/problems/house-robber/) | 5-step walkthrough + practice + implementation.py; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Coin Change | Online judge | LeetCode 322 | [উৎস খুলুন](https://leetcode.com/problems/coin-change/) | 5-step walkthrough, table frame, implementation.py; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Unique Paths | Online judge | LeetCode 62 | [উৎস খুলুন](https://leetcode.com/problems/unique-paths/) | Grid-paths walkthrough + practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Longest Increasing Subsequence | Online judge | LeetCode 300 | [উৎস খুলুন](https://leetcode.com/problems/longest-increasing-subsequence/) | 5-step walkthrough (state-anchor-এর শিক্ষাটা) + implementation.py; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Longest Common Subsequence | Online judge | LeetCode 1143 | [উৎস খুলুন](https://leetcode.com/problems/longest-common-subsequence/) | String-DP family-র example; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Edit Distance | Online judge | LeetCode 72 | [উৎস খুলুন](https://leetcode.com/problems/edit-distance/) | ছোট table-সহ sketch-level 5-step walkthrough; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Partition Equal Subset Sum | Online judge | LeetCode 416 | [উৎস খুলুন](https://leetcode.com/problems/partition-equal-subset-sum/) | Subset-sum family-র example; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Word Break | Online judge | LeetCode 139 | [উৎস খুলুন](https://leetcode.com/problems/word-break/) | Prefix-DP example; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Maximum Subarray (Kadane) | Online judge | LeetCode 53 | [উৎস খুলুন](https://leetcode.com/problems/maximum-subarray/) | ছদ্মবেশী 1D DP হিসেবে দেখানো; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Min Cost Climbing Stairs | Online judge | LeetCode 746 | [উৎস খুলুন](https://leetcode.com/problems/min-cost-climbing-stairs/) | Easy practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Fibonacci Number | Online judge | LeetCode 509 | [উৎস খুলুন](https://leetcode.com/problems/fibonacci-number/) | Memoization-এর hello-world practice | official link only |
| Minimum Path Sum | Online judge | LeetCode 64 | [উৎস খুলুন](https://leetcode.com/problems/minimum-path-sum/) | Grid-DP family-র example | official link only |
| Burst Balloons | Online judge | LeetCode 312 | [উৎস খুলুন](https://leetcode.com/problems/burst-balloons/) | Interval-DP teaser example; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Regular Expression Matching | Online judge | LeetCode 10 | [উৎস খুলুন](https://leetcode.com/problems/regular-expression-matching/) | Hard string-DP practice | official link only |
| Dice Combinations | Online judge | CSES 1633 | [উৎস খুলুন](https://cses.fi/problemset/task/1633) | 1D counting practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Minimizing Coins | Online judge | CSES 1634 | [উৎস খুলুন](https://cses.fi/problemset/task/1634) | Unbounded-knapsack practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Coin Combinations I | Online judge | CSES 1635 | [উৎস খুলুন](https://cses.fi/problemset/task/1635) | Counting-ways practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Grid Paths (DP) | Online judge | CSES 1638 | [উৎস খুলুন](https://cses.fi/problemset/task/1638) | Obstacle-grid practice + implementation.py-র blocked-cell flavor; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Book Shop | Online judge | CSES 1158 | [উৎস খুলুন](https://cses.fi/problemset/task/1158) | 0/1-knapsack practice; নিজেদের ভাষায় বর্ণনা করা | rewritten problem |
| Open DP practice pool | Online judge | Codeforces problem set | [উৎস খুলুন](https://codeforces.com/problemset/) | চোখ-বুজে pattern-recognition practice | official link only |
| Recursion prerequisite | This repo | 06 — Recursion and Backtracking | ../06-recursion-and-backtracking/ | Cross-reference: DP = recursion + একটা খাতা | original explanation |
| Topological order for DP on DAG | This repo | 09 — Graphs, topological sort | ../09-graphs/topological-sort.md | patterns.md-তে cross-reference | original explanation |
| Bit tricks for bitmask DP | This repo | Math fundamentals levels 4 and 11 | ../01-math-based-programming-fundamentals/ | patterns.md-তে cross-reference | original explanation |
| All call trees, table frames, examples, and Python code | This repo | Original teaching material | — | এই folder-এর জন্য বানানো; assert verified | original explanation |
