--- id: dp-bitmasks title: "Dynamic Programming on Bitmasks" author: Michael Cao prerequisites: - Bit Operations - Gold - Introduction to Dynamic Programming description: DP problems that require iterating over subsets. frequency: 1 --- import { Problem } from "../models"; export const metadata = { problems: { general: [ new Problem("CSES", "Hamiltonian Flights", "1690", "Easy", false, ["Bitmasks"], ""), new Problem("CSES", "Elevator Rides", "1653", "Normal", false, ["Bitmasks"], ""), new Problem("ojuz", "IZhO Bank", "IZhO14_bank", "Normal", false, ["Bitmasks"], ""), new Problem("YS", "Max Indep Set", "maximum_independent_set", "Hard", false, ["Bitmasks", "Meet in Middle"], ""), ], } }; Has not been the solution to any platinum problem, but appeared in old gold and can be used for subtasks. ## Tutorial - [PAPS 9.4](https://www.csc.kth.se/~jsannemo/slask/main.pdf) - CPH 10 (Bit manipulation), 19.2 (Hamiltonian Paths) - [Dynamic Programming Over Subsets (Codeforces)](https://codeforces.com/blog/entry/337) - [Dynamic Programming and Bit Masking (HackerEarth)](https://www.hackerearth.com/practice/algorithms/dynamic-programming/bit-masking/tutorial/) ## Problems - [Old Gold - Moovie Mooving](http://www.usaco.org/index.php?page=viewproblem2&cpid=515) - [AC Matching](https://atcoder.jp/contests/dp/tasks/dp_o) - [CF Square Subsets](https://codeforces.com/contest/895/problem/C) - [CF Guards in the Storehouse](https://codeforces.com/problemset/problem/845/F) - [Kattis Cat & Mice](https://open.kattis.com/problems/catandmice) [](66) - plus a bit of geometry