@Errichto

All the codes are in the GitHub repository (link in the description).
Timestamps:
9:20 A - Frog 1
11:30 B - Frog 2
13:00 C - Vacation
17:07 Fighting with glitches, part 1
21:55 D - Knapsack 1
27:46 E - Knapsack 2
34:58 Fighting with glitches, part 2 (big thanks to bluefog!)
40:29 F - LCS
59:50 G - Longest Path
1:08:03 H - Grid 1
1:12:15 I - Coins
1:19:17 J - Sushi
1:43:20 K - Stones
1:47:20 L - Deque
1:54:47 M - Candies
2:07:25 N - Slimes
2:18:06 O - Matching
2:28:45 P - Independent Set
2:40:13 Q - Flowers
2:51:23 R - Walk
3:05:52 S - Digit Sum
3:17:40 T - Permutation
3:35:26 U - Grouping
3:50:53 V - Subtree
4:17:12 W - Intervals
4:37:29 X - Tower
4:45:40 Z - Frog 3
4:59:27 Y - Grid 2

@snozzd

This contest series is really helpful to learn DP. I've been doing some practice problems using this video as a reference. So far I've done the first five problems, and I already feel much more comfortable with DP! My procedure is as follows: 
1. Start problem and solve as much as possible on my own.
2. Refer to Erichto description as necessary for some hints, if necessary (only if stuck for 1hr+)
3. Complete the problem
4. Finish watching Erichto solution to understand any missed opportunities or alternate solutions.

@sumedhvangara7368

"problem number O" - what a genius

@shHDAC2

Thank you so much, Errichto, for your efforts in making all these videos/streams. I like them a lot and learn so much from peeking your ways to solve problems.

@hAsH_learn2code

Thank you Errichto, You will be a good trainer. This is the best stream I have seen till now. Thanks a lot.

@anshuly26

watching this in year 2024 , non stop 5 hours. Its like avengers 1 min 23 seconds to go and praying please please please ..... finally the AC. :face-fuchsia-wide-eyes:

@sanjaysinghbisht8933

You are exceptional Sir so fast and quick on DP problems

@DebojyotiMandal

Legendary AC streak !!!
Thanks man.

@nagasaikiran2770

WILL APPRECIATE MORE VIDEOS FROM U BRO!(excellent work)

@tuhinmukherjee8141

Another general way to go about solving K-Stones or any such problem, is to use Sprague-Grundy functions. The Grundy value of a state determines whether the game is winnable or not. The grundy value of any state is the mex(minimum excludant) of the grundy values of all the adjacent states to the current state whose grundy values is being calculated. In case, a move divides the game into n such similar games, the grundy value of the state is the xor-sum of the grundy values of all the n games.

@apolloliu9327

Thanks for your wonderful videos which let me learn a lot. :)  The only downside is the lack of subtitles because some words are hard to hear clearly.

@progamerzzz1237

please prepare more contests.This was so helpful and educational.

@secretmystery8305

Oh finally got a video from Erichto to big time. Thanks

@manishrawat1079

My reading speed is slower than his coding speed. This is INSANE.

@Hetp111

I didn't get why he reverses the inner loop @ 24:00, 60:15 in problems like knapsack and coins when using 1D dp

@tuhinmukherjee8141

A more general way of solving the K-Stones problem is to pose it as a Graph problem, something that is often the way to go in Game Theory, and solve it using a BFS based Percolation Algorithm. 
Every vertex in such a graph would be game state. Vertex definition differs from game to game, for example, in this case a possible vertex definition would be (number of stones, player who'll make a move now) . 
A vertex can either be winning or losing. A winning vertex would be a vertex which is connected to atleast one losing vertex. Similarly, a losing vertex would be a vertex that is only connected to losing vertices. 
One way of labelling a losing vertex is to track the initial in degree of such a vertex and keep on decreasing it everytime we find a losing vertex adjacent to it and once it reaches zero, we can safely label it as losing. 
We start by enqueueing states we know to winning or losing. For example, if the definition of the states we're enqueueing is of type (number of stones, player who'll move, label), we can initially enqueue (0, 0, 0) and (0, 1, 0), because of regardless of who's playing (0 or 1), if there are 0 stones, it's a losing position for him. 
Now we pop vertices, explore neighbors and do the needful. The answer to our problem would be the result of state  (N, 0) where N is the number of stones and 0 is the first player. 
If you want to know more about this, check out the Discuss section of Cat and Mouse I, Cat and Mouse II of Leetcode and search for tuhinnn_py.

@kaushalkumar-ob2mw

Bro ur efforts are much appreciated ... Thank you very much for ur time and hard-work. Your videos are crazy simple even for beginners🙏🏻

@Yagamilight19383

bluefog definitely knows it all

@vishnusingh4118

Thanks Errichto! I've watched a number of your videos. This is one of the best! Especially because the level of problems is not super easy, you expose new techniques that are usable in many situations, and most importantly, you show alternate solutions to the same problem and actually CODE IT. That way, beginners can learn the bad solution, the better one, the standard solution and the smart one. Hope you can find time for more such educative content. Really appreciate it. More power to your channel!