--- id: dp-trees title: "Dynamic Programming on Trees" author: Michael Cao prerequisites: - - Silver - Depth First Search - - Gold - Introduction to Dynamic Programming --- ## Tutorial * [DP on Trees (Codeforces)](https://codeforces.com/blog/entry/20935) * [NOI PDF](https://noi.ph/training/weekly/week5.pdf) ## Problems [[info | Pro Tip]] | Don't just dive into trying to figure out a DP state and transitions -- make some observations if you don't see any obvious DP solution! * [Subtree](https://atcoder.jp/contests/dp/tasks/dp_v) * [Independent Set](https://atcoder.jp/contests/dp/tasks/dp_p) * [Gold - Barn Painting](http://www.usaco.org/index.php?page=viewproblem2&cpid=766) * Similar to Independent Set * [Gold - Delegation](http://usaco.org/index.php?page=viewproblem2&cpid=1019) * Pretty much a greedy problem. * [BOI - Cat In A Tree](https://cses.fi/file/a904421da451fbe1b60f96a27256832a011825dfd097ee40184d15878e837018/) * Observations first. * [COCI - Dzumbus](https://oj.uz/problem/view/COCI19_dzumbus) * Solve child subtree by subtree. Runtime may be faster than you think. * [Ostap and Tree](https://codeforces.com/problemset/problem/735/E)