---
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: 2
---
import { Problem } from "../models";
export const metadata = {
problems: {
general: [
new Problem("AC", "Matching", "https://atcoder.jp/contests/dp/tasks/dp_o?lang=en", "Intro", false, ["Bitmasks"], ""),
new Problem("CSES", "Hamiltonian Flights", "1690", "Intro", false, ["Bitmasks"], ""),
new Problem("CF", "Square Subsets", "contest/895/problem/C", "Easy", false, [], ""),
new Problem("Kattis", "Cat & Mice", "catandmice", "Normal", false, ["Bitmasks", "Geometry"], ""),
new Problem("Old Gold", "Moovie Mooving", "515", "Normal", 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", "Normal", false, ["Bitmasks", "Meet in Middle"], ""),
],
broken: [
new Problem("CF", "Guards in the Storehouse", "problemset/problem/845/F", "Normal", false, [], ""),
new Problem("Plat", "Compound Escape", "949", "Very Hard", false, [], ""),
],
}
};
Although this has not been the solution to any platinum problem, you can frequently use this for subtasks.
## Tutorial
## Problems
## DP on Broken Profile
(fill in? more probs?)