Dynamic Programming on Bitmasks
Authors: Michael Cao, Siyong Huang
DP problems that require iterating over subsets.
Pro Tip
You can often use this to solve subtasks.
Bitmask DP
Focus Problem – read through this problem before continuing!
Tutorial
Resources | |||
---|---|---|---|
CPH | Elevator Rides, SOS, Hamiltonian | ||
PAPS | example - similar to Hamiltonian | ||
CF | Hamiltonian walks | ||
HE |
Solution
This section is not complete.
Problems
Status | Source | Problem Name | Difficulty | Tags | Solution |
---|---|---|---|---|---|
AC | Easy | Show TagsBitmasks | Check AC | ||
CF | Easy | Show TagsBitmasks, MinCostFlow | Check CF | ||
Old Gold | Easy | Show TagsBitmasks | External Sol | ||
Old Gold | Easy | Show TagsBitmasks | External Sol | ||
CSES | Normal | Show TagsBitmasks | CPH 10.5 | ||
IZhO | Normal | Show TagsBitmasks | View Solution | ||
YS | Normal | Show TagsBitmasks, Meet in Middle | View Solution | ||
Kattis | Normal | Show TagsBitmasks, Geometry, Binary Search | View Solution |
Bitmask over Primes
Rough Idea
In some number theory problems, it helps to represent each number were represented by a bitmask of its prime divisors. For example, the set can be represented by (in binary), where the bits correspond to divisibility by .
Then, here are some equivalent operations between masks and these integers:
- Bitwise AND is GCD
- Bitwise OR is LCM
- Iterating over bits is iterating over prime divisors
- Iterating over submasks is iterating over divisors
Choosing a set with GCD is equivalent to choosing a set of bitmasks that AND to . For example, we can see that doesn't have GCD because . On the other hand, has GCD because .
This section is not complete.
Maybe this is just standard NT, but I've always thought about it as a bitmask. Also, any tutorials or more problems of this type?
Problems
Status | Source | Problem Name | Difficulty | Tags | Solution |
---|---|---|---|---|---|
CF | Hard | Show TagsDP, Combinatorics | Check CF | ||
CF | Very Hard | Show TagsDP, Bitmasks, NT | Check CF | ||
CF | Insane | Show TagsBitmasks, NT, Binary Search | Check CF | ||
CF | Insane | Show TagsDP, Bitmasks, Combinatorics | Check CF |
Module Progress:
Give Us Feedback on Dynamic Programming on Bitmasks!
Join the Discussion!
Feel free to voice your thoughts in the comments section.