kartik8800's blog

By kartik8800, history, 10 months ago, In English

Hello Codeforces!

This series of videos are focused on explaining dynamic programming by illustrating the application of DP with bitmasking through the use of selected problems from platforms like Codeforces, Codechef, SPOJ, CSES and Atcoder.

After going through this series, you should find yourself confident in solving problems which require the use of dp and bitmasks and also implementing them in a reasonable amount of time.

I will also live code and submit the solutions to the problem on the coding platform from where the problem comes.

Some Basic elements of Dynamic Programming

Some general ideas and my thoughts about DP to help you get started:

Part 1: https://youtu.be/24hk2qW_BCU
1. What is Divide and Conquer?
2. What is Dynamic Programming?
3. Types of DP problems.

Part 2: https://youtu.be/yfgKw6BUZUk
1. What is a DP-state?
2. Characterizing a DP-state.
3. What is a recurrence?
4. Top Down v/s Bottom Up.

Part 3: https://youtu.be/X-3HklSPx6k
1. Directed Acyclic Graph(DAG) Representation of DP solution
2. Visualizing Top-Down and Bottom-Up.
3. Evaluation order for bottom-up codes.
4. Analyzing the space and time complexity for a DP solution(derivation).

You may also want to checkout these video tutorials:
- Beginner Friendly Series on Dynamic Programming
- Dynamic Programming on Trees

About the series

Short video where I talk about the playlist: https://youtu.be/6sEFap7hIl4

What is Bitmasking

I talk about what is bitmasking before we actually start solving problems that use dp with bitmasking.
https://youtu.be/7FmL-WpTTJ4

Illustration: Solving the Job Assignment Problem

Using a simple problem, I will illustrate how to solve and implement problems which use dp+bitmask concepts.
Problem link: statement
Solution: https://youtu.be/685x-rzOIlY

Illustration: Travelling Salesman Problem

Another great problem to illustrate bitmask dp.
I will discuss the following:
1. What is the TSP?
2. Brute force solution.
3. Intuition towards an efficient solution.
4. Define a DP state, write a recurrence.
5. How do I implement this? ANS: bitmasking!
6. Analyzing time and space complexities.

Link: https://youtu.be/QukpHtZMAtM

Codeforces Problem: Div2E

I'll discuss a problem named Fish that comes from a Codeforces Divison 2 round.
Problem link: https://codeforces.com/contest/16/problem/E
Solution: https://youtu.be/d7kvyp6dfz8

Codechef long Challenge: Medium

The problem comes from Codechef long challenge and is rated MEDIUM by codechef.
Problem link: https://www.codechef.com/problems/TSHIRTS
Solution: https://youtu.be/Smem2tVQQXU

CSES: Counting Tilings

The problem comes from CSES problemset and was introduced to the problemset in 2021.
Problem link: https://cses.fi/problemset/task/2181
Solution: https://youtu.be/lPLhmuWMRag

Practice Problems:
1. https://atcoder.jp/contests/dp/tasks/dp_o
2. https://atcoder.jp/contests/dp/tasks/dp_u
3. https://www.codechef.com/JAN13/problems/LEALCO
4. https://www.spoj.com/problems/HIST2/
5. https://codeforces.com/problemset/problem/895/C

If people find this helpful then I will try and add more problems to this list :)

 
 
 
 
  • Vote: I like it
  • +148
  • Vote: I do not like it

»
10 months ago, # |
  Vote: I like it +6 Vote: I do not like it

You are worth more than 1000 greens

  • »
    »
    5 weeks ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    Greens don't like this comment

»
10 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by kartik8800 (previous revision, new revision, compare).

»
10 months ago, # |
  Vote: I like it +10 Vote: I do not like it

This blog has some really nice problems on bitmask dp.

  • »
    »
    10 months ago, # ^ |
      Vote: I like it +1 Vote: I do not like it

    thanks for sharing, will add links to some of these in the blog.

»
10 months ago, # |
  Vote: I like it +6 Vote: I do not like it

For a long time, I am unable to understand masks and sub masks, but now I get it. Thanks to these tutorials! You are doing a great job. Thank you!

  • »
    »
    10 months ago, # ^ |
      Vote: I like it +4 Vote: I do not like it

    glad to know, you found it helpful.

  • »
    »
    10 months ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    What are sub masks ? I guess 2nd problem from practice problems list which is U: Grouping required knowledge of sub mask.

    Can somebody please explain this concept or explain how can we solve this problem?

    • »
      »
      »
      5 weeks ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Suppose you have selected a mask having value 14 (1110) and now you want to iterate on all the possible subsets of this mask, i.e., (14,12,10,8,6,4,2). These subsets of a mask are called sub masks. Note that the subsets are only those numbers for which all the bits of sub masks are set in the mask.

»
10 months ago, # |
  Vote: I like it +14 Vote: I do not like it

Is this what hope looks like?

»
5 months ago, # |
  Vote: I like it 0 Vote: I do not like it

Auto comment: topic has been updated by kartik8800 (previous revision, new revision, compare).