Complete Dynamic Programming Practice - Noob to Expert | Topic Stream 1

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 188

  • @ColinGalen
    @ColinGalen  2 роки тому +217

    Seems like this video is hitting the algorithm. For those of you who are new here - I have a face now, and also a significantly better mic :)

    • @dipankarkumarsingh
      @dipankarkumarsingh 2 роки тому +11

      😊 Good to See you back on UA-cam [ after a long break ] ....
      And yes this video is really Quality content [ with Lots of Varity on Questions ]
      thanks for the video

    • @austinwitherspoon4940
      @austinwitherspoon4940 2 роки тому

      .lm
      .
      .
      ..
      .
      .
      ....
      .
      ..
      .
      ..
      .
      .
      ...
      .
      .
      ..
      .
      .
      .
      .
      .
      .
      .
      .
      .
      .....
      ....
      ..
      ........
      .
      .
      ..
      .
      .
      .
      .
      ..
      .
      .
      .
      ..
      .
      .
      .
      ...
      .
      .
      ..
      .....

    • @austinwitherspoon4940
      @austinwitherspoon4940 2 роки тому

      O
      ...
      .....
      .
      .
      .
      .
      .
      ...
      .....
      ....
      ..
      ...
      .
      .
      .
      .
      .
      .
      ...
      ....
      .....
      ..
      ..
      ..
      .
      .
      .
      .
      ..
      ..
      ..
      .. mm..
      ...
      ......
      ......
      .
      .
      ..
      ..
      ..
      .
      ...
      .
      .
      M................
      .
      .
      .....
      ..
      ..
      .....
      .
      .........
      ....
      ....
      .
      .
      ..
      .......
      .
      ...
      .
      .......
      ...
      .
      .
      ...
      .................
      ..

    • @Gukslaven
      @Gukslaven 2 роки тому +4

      Honestly the best tutorial I've seen for DP. I'm working through the problems and referring back to this vid as I get stuck, making progress :)

    • @minfoodtravels
      @minfoodtravels 2 роки тому

      programming becoming more widely available and newbies like myself find your methods of teaching very easily absorbing into my brain cells, I thank you for your great and entertaining content and deep knowledge on DP.

  • @sayantansinharay9161
    @sayantansinharay9161 4 роки тому +121

    I am 19 :) still watching you learn something. One suggestion my friend please don't get distracted by live comments

  • @abhinavghosh725
    @abhinavghosh725 4 роки тому +155

    for me the hardest part of DP is finding out that this is a Dp problem .
    btw you repeatedly said rows in place of column and vice versa many times , other than that it was perfect !

    • @shreyghugtiyal4118
      @shreyghugtiyal4118 2 роки тому +5

      exactly😂

    • @Shreyas535
      @Shreyas535 2 роки тому +10

      For me the hardest part is to identify a greedy problem. I have the least success rate in identifying greedy problems.

    • @therealg9542
      @therealg9542 10 місяців тому +1

      If the problem can be solved by solving subproblems, the problem is most likely a dp question. If the solution to the current subproblem cannot be solved using previous subproblems, then the question is most likely not a dp question. dp intuition requires practice.

  • @PrinceKumar-gl5fk
    @PrinceKumar-gl5fk 4 місяці тому +1

    solution for 1st question
    #include
    using namespace std;
    int pow_2(int n){
    return (1n ;
    long long x=pow_2(n/2);
    if(n%2) cout

  • @timothygao9442
    @timothygao9442 4 роки тому +59

    "Improving is a random thing"

    • @ColinGalen
      @ColinGalen  4 роки тому +54

      There are probably a lot of good quotes in this video lol

    • @harshadaggarwal6029
      @harshadaggarwal6029 4 роки тому +17

      @@ColinGalen my favorite at 2:10:20

    • @alonsocerpa2745
      @alonsocerpa2745 3 роки тому

      @@harshadaggarwal6029 hahaha

  • @eshumanohare7614
    @eshumanohare7614 2 роки тому +2

    A non-dp solution to problem G
    #include
    #include
    using namespace std;
    typedef long long ll;
    int main(){
    ll v1, v2;
    cin >> v1 >> v2;
    ll t, d;
    cin >> t >> d;
    ll ans = v1 + v2;
    for(ll i=1; i

  • @lingcheng2971
    @lingcheng2971 3 роки тому +4

    For problem F, your original code is almost passing.
    if (k>=4) ans += 3 * nck(n,4) + nck(n,2)*nck(n-2,2);
    can pass all tests.

  • @dejavukun
    @dejavukun 3 роки тому +2

    Thanks a lot for the contest. Please avoid getting distracted by the comments. Breaks the flow of explanation.

  • @professionalFriend
    @professionalFriend 4 роки тому +6

    Good Work...First i can try questions on my own and see your video if i get stuck at some problem.

  • @kinershah464
    @kinershah464 2 роки тому +18

    Great video. I tried my best to follow and understand the concepts.
    Just one suggestion, if you can use better variable names to represent DP states. Using variable names like i, j and k can be confusing sometimes.
    I know you are used to using shorter names since it's way convenient and fast for CP but I will really appreciate if you could use slightly longer and meaningful names, of course only during explanation for better understanding and avoiding any confusion.
    Again thanks for great explanation. Really appreciate the time you have taken to explain the DP concepts.

  • @zoeylovegood2185
    @zoeylovegood2185 5 місяців тому +4

    I have no idea what complete dynamic programming is, nor do I ever imagine I'll ever learn, but I did somehow wake up at 3am from a very bizzare dream about it due to youtube's autoplay. So thanks youtube for the 3am lesson that I didn't ask for.

  • @johnnycharles702
    @johnnycharles702 5 місяців тому +2

    I fell asleep listening to a podcast and then this came on afterwards. I had anxiety dreams I was in college again, and you were trying to teach me differential equations, but nothing you said made any sense because this isn't a class on DE.

  • @watchlistsclips3196
    @watchlistsclips3196 3 роки тому +11

    I am soo glad that you are making a video on graphs .It will be lot more helpful to many people if you make videos on problems involving greedy method like u made for topics such as trees, dynamic programming . Like where we need to use this approach. We have very less videos regarding this.

  • @abhaypatil2000
    @abhaypatil2000 4 роки тому +4

    Definitely you are getting to 10k.cause once a person start watching you he is going to stick with you

  • @lakshyabamne
    @lakshyabamne Рік тому +3

    my right ear enjoyed this stream very much, cant say the same for my left year though :)

  • @vanchark
    @vanchark 2 роки тому +6

    I appreciate you putting out this free educational content, but a suggestion would be to try to stay focused while explaining your thought process. It's hard to follow along when mid-thought you reply to chat :(

  • @jakeambrose4294
    @jakeambrose4294 Рік тому +1

    Wow this seems like what ive been dying to find. I sure hope it is. I appreciate all your effort and sharing the knowledge my friend!

  • @karasensei2308
    @karasensei2308 2 роки тому

    not know , but just know you've affected my life, and apparently tens of thousands of others, in an imnsely positive way. Thank you

  • @sunshodan5883
    @sunshodan5883 3 роки тому +3

    please keep making topic streams

  • @Eurotool
    @Eurotool Рік тому +1

    Dreamed of this annoying know-it-all from my previous job
    He was "teaching" me things I already knew
    He said "now I'm gonna teach you recursion"
    And I replied I ALREADY KNOW WHAT THAT IS
    And he flat out ignored me
    Then he said "okay to learn recursion we're gonna use fibonacci's sequence. but first let's learn what fibonacci's sequence is"
    I was like NO I KNOW WHAT IT IS but again he ignored me
    Eventually I was fed up so I left the room
    But he CALLED ME and kept explaining fibonacci's sequence
    Then I woke up and found out UA-cam was playing this random programming tutorial

  • @mangalegends
    @mangalegends 2 роки тому +6

    So I just realized something after see you do Mashup B. One of the big parts of my struggle with DP questions is understanding what the heck the question is really asking. I saw the solution to the number of typeable substrings for the example string "abacaba" is 12, and I could not see how there are 12 substrings. I could only count 5:
    a
    ab
    aba
    ba
    b
    I couldn't fathom how there's 12 until like the next day I took a look again and it occurred to me that they're counting the same character multiple times if it's in the string in different places. So they're not looking for the count of unique substrings, which was pretty counterintuitive for me

  • @vishnusingh4118
    @vishnusingh4118 3 роки тому +9

    Thanks for these vids man! One suggestion - The audio quality is a dampener to the amazing efforts you're putting in. If it's a short video, it's bearable, but in long streams like these, audio is actually way more important than video. If you could invest a bit in a better mic, it would do a world of good to up the quality of audio. Thanks again for your efforts and value addition to the community. Learning a ton from you!

    • @ColinGalen
      @ColinGalen  3 роки тому +10

      Yep, this is an older video, and I have a much better mic for some of the newer ones.

    • @nathann6518
      @nathann6518 3 роки тому +1

      @@ColinGalen I need help, for mashup A, I do get 2*f(n-2), do to probability, but I don’t get f(n-2) + f(n-2) and how you got that solution using DP

  • @bobapplebob9695
    @bobapplebob9695 Рік тому

    I incredibly doubt you will see this due to the fact that you apparently have a ton of subscribers all of a sudden, but thought you'd get a kick out of me having found this video through autoplay while asleep, you can imagine my surprise when I woke up and I heard a voice I recognized.

  • @harshsrivastava5124
    @harshsrivastava5124 4 роки тому +15

    Thanks a lot it really helped.. Hoping to see more of these streams :)

  • @inspired_enough_to_grow_up
    @inspired_enough_to_grow_up 3 роки тому +15

    will you conduct more such?
    highly needed bruh!

    • @ColinGalen
      @ColinGalen  3 роки тому +16

      Yeah, I do plan more in the future, there's just not much time for me to do them currently.

  • @DonTequilon
    @DonTequilon 2 роки тому

    what an incredible video, hope you the best.

  • @koocheukkeijacky9704
    @koocheukkeijacky9704 3 роки тому +4

    Thank you so much! I learnt a lot in all of your tutorial stream

  • @AlgorithmAlchemy69
    @AlgorithmAlchemy69 Рік тому

    F can be easily be solved using dearrangements!

  • @dontony7071
    @dontony7071 4 роки тому +2

    Next one on graphs and trees🤔

  • @dangduong5362
    @dangduong5362 3 роки тому +3

    thanks for your helpful lecture

  • @sarathkumarnallendhiran2815
    @sarathkumarnallendhiran2815 2 роки тому +2

    Please do a topic stream on recursion and backtracking.

  • @eliotcamel7799
    @eliotcamel7799 Рік тому +1

    First few problems be like: "Imagine doing the O(1) solution when there's an O(n) solution"

  • @JayDee-b5u
    @JayDee-b5u 11 місяців тому

    FFT is not DP. It uses the decimation algorithm because so many of the elements end up being zeros. It can be 'memoized' but to break it up into smaller subproblems doesn't give any benefit.

  • @M4rt1nX
    @M4rt1nX Рік тому

    Yeah, the algo got me here. It was on autoplay while I was sleeping.

  • @samarjyoti-ray
    @samarjyoti-ray 4 роки тому +5

    5:41
    "No Way!"
    t'was funny 😂😂
    You must be working with Python, I guess?

  • @Spectrum_Aerospacejet_Lab
    @Spectrum_Aerospacejet_Lab Рік тому +2

    Robots and Relays.

  • @matteopozzi_
    @matteopozzi_ 2 місяці тому

    How easily this dude gets distracted while talking is insane

  • @vinicus508
    @vinicus508 Рік тому +1

    I slept with UA-cam on and this video started playing. I dreamt about a guy who was solving the Navier Stokes millennium equation using some sort of toy that he moves around with his fingers (that was you typing). Lmao

    • @kaizoku_04
      @kaizoku_04 3 місяці тому

      😂😂😂😂😂😂😂😂😂😂😂

  • @parthpawar7837
    @parthpawar7837 4 роки тому

    In problem A, f(n) = 2f(n-2) because we choose a 2x3 block (which has 2 orientations) and multiply with the solution of f(n-2), hence 2f(n-2). But we can also chose that 2x3 block in n ways, so why isn't the relation f(n) = n*2*f(n-2) ?

    • @ColinGalen
      @ColinGalen  4 роки тому +1

      Because the location of the block is irrelevant - if you put it somewhere in the middle, it'll be equivalent to putting it in the middle later (i.e. the order in which you place down blocks is irrelevant). So that recurrence will drastically overcount. I use the recurrence I do to make the subproblems independent - if I place it at the (right) end of the current grid, then it will be completely independent from the rest of the grid, and thus not overcount.

    • @parthpawar7837
      @parthpawar7837 4 роки тому

      @@ColinGalen Makes sense. Thanks for clearing this

  • @revanthkalavala1829
    @revanthkalavala1829 Рік тому

    Problem F should be more suitable in Math category rather than DP.

  • @prasaddash5139
    @prasaddash5139 4 роки тому +1

    i am still not able to get the C problem can any one suggest a place to read it again

  • @itz_me_imraan02
    @itz_me_imraan02 3 роки тому +2

    Couldn't understand some problems clearly....you could have explained some problems in more details....don't recommend this for beginners 😔..

  • @nguyenhoangdung3823
    @nguyenhoangdung3823 4 роки тому +4

    what? Discord LIGHT THEME ???

  • @jakeambrose4294
    @jakeambrose4294 Рік тому

    theres very very very little amount of resources on the internet that help people from 0-100 with constructive resources and telling them what to drill and practice.

  • @huhuboss8274
    @huhuboss8274 Рік тому

    Only 30k left until he can pin comments

  • @shubhamk840
    @shubhamk840 4 роки тому +7

    Since you have crossed more than 5k subs, you should now switch to something like electronic writing pad I guess.

  • @Yash-x1m6t
    @Yash-x1m6t 10 місяців тому

    Hey @ColinGalen I did not understood why are you using min() in mashup C's ?

  • @nallasivakrishnasai1122
    @nallasivakrishnasai1122 4 роки тому +1

    @Colin Galen In problem E(office keys) Can you please help me in formally proving that the greedy way of having continuous assignment between the keys and people is optimum. Anyone's help would be really useful.

    • @dakshchhabra5975
      @dakshchhabra5975 3 роки тому

      Lets say P1 and P2 are positions of two people and k1 and k2 are positions of two Keys
      I am going to explain one of the case when k1>P1 and k2 > P2, other 3 cases you can deduce by yourself
      Distance if we assign P1 to k2 and P2 to k1 is
      K2-P1 + (p2-k1) if we assume P2> k1
      Surely this dis is greater than
      K1-p1 + (p2-k2) because P2>k1
      Other cases you can prove similarly

  • @igorbeliyaveski7600
    @igorbeliyaveski7600 Рік тому +1

    Thank you!!!

  • @nimanthadilz
    @nimanthadilz 3 роки тому +2

    Hi Colin, In problem E-Office Keys, I understand why you say two people can't cross their paths to get the keys. But you didn't say why you choose key positions continuously. I mean if first person is assigned to ith key position, second person is assigned to (i+1)th position and so on. What is the reason for this ?

    • @theblinkingbrownie4654
      @theblinkingbrownie4654 Рік тому +1

      The second person is not assigned to the (i+1)th position, he has the CHOICE to choose the (i+1)th position and any key after that

  • @AKRahim-wg5dm
    @AKRahim-wg5dm 3 роки тому

    golden voice

  • @Phoenix-xi2gy
    @Phoenix-xi2gy 4 роки тому +2

    Can you please provide some resource or some intuition for "taking continuous keys will give us optimal solution" part of E problem Office Keys

  • @adcaptandumvulgus4252
    @adcaptandumvulgus4252 8 місяців тому

    As soon as I heard the word math I went "nope"

  • @alphaco3868
    @alphaco3868 3 роки тому

    It took 1 month to complete dp where some people trying to learn dp in one day ..... :D

  • @abhinavrajhans1107
    @abhinavrajhans1107 3 роки тому

    i do not understand the dth question in that we can keep him awake for k straight minutes and if we choose start of 3 then we can keep him awake till [3,3+3-1] which includes 5 2 5 so the sum is 12 but how sum is coming as 14 please help ?

  • @pranjalpriyadarshi1289
    @pranjalpriyadarshi1289 3 роки тому

    How do I get the list of all the codeforces mashups which you have created!

  • @newman6492
    @newman6492 Рік тому +2

    I think you don't know what is row and what is column?

  • @Poignant_
    @Poignant_ Рік тому

    Hello, in the past couple of days my internet started acting very strange, my lights are a solid green and a blinking orange but whenever i try to play an online game i keep getting disconnected but the little icon in the right corner still says in connected, how can i fix this?

  • @sazidimtiaz831
    @sazidimtiaz831 3 роки тому

    thank you very much!❣️

  • @akashbhoi1951
    @akashbhoi1951 2 роки тому

    Is this the extension or something else (the box with the right arrow) :)

  • @JosephKozora
    @JosephKozora Рік тому

    Just checking this out

  • @pleasesirmorevideos4684
    @pleasesirmorevideos4684 4 роки тому +9

    Nice Stream just avoid reading chats so much, they distract a lot rest all are fine

    • @imranif3899
      @imranif3899 4 роки тому +9

      Why? It's his channel, he has the complete freedom to do streams the way he deems it fun as well as informative. It's no easy task doing a 4hr streaming without taking much of a break.

    • @pleasesirmorevideos4684
      @pleasesirmorevideos4684 4 роки тому +2

      @@imranif3899 you are so cute

    • @imranif3899
      @imranif3899 4 роки тому +1

      @@pleasesirmorevideos4684 lol...couldn't you just avoid reading my comment? So distracting, wasn't it? I highly doubt your ability to do what you just said.

    • @pleasesirmorevideos4684
      @pleasesirmorevideos4684 4 роки тому +1

      @@imranif3899 you are still so cute

    • @ColinGalen
      @ColinGalen  4 роки тому +13

      @@pleasesirmorevideos4684 Bruh, even if you know each other, don't be toxic

  • @laraibanwar1618
    @laraibanwar1618 4 роки тому +4

    Hey colin can u plz teach line sweep algorithms with example plz.. Ur videos are awesome tho. Great work and i like the ways u teach. Best 👍

  • @abhaypatil2000
    @abhaypatil2000 4 роки тому

    I am not comfortable using push dp. Is it ok to use recursive dp. I mean are there any questions which can be done by push dp and not with recursive dp?

    • @ColinGalen
      @ColinGalen  4 роки тому +9

      Yes, there are some. However, they usually involve difficult recurrences, and won't show up until the higher end of the difficulty scale. In almost all cases, it's completely fine to use recursive DP, and whatever you use is preference. By the time you get to the point of having to solve the harder ones, you'll probably be comfortable enough with DP to be able to do it.

  • @Axjira
    @Axjira 9 місяців тому +1

    I woke up to this. How does someone end here starting from brawl stars kmak

  • @anhuynh1172
    @anhuynh1172 10 місяців тому

    You help me a lot

  • @prateekchauhan9044
    @prateekchauhan9044 4 роки тому

    Please explain codechef november long questions

  • @pulkitjoshi28
    @pulkitjoshi28 3 роки тому +2

    Hey, in problem A, shouldn't f[0] be 0, since a 3x0 grid doesn't make sense.

  • @anunaysharma5609
    @anunaysharma5609 4 роки тому +1

    Hey Colin,
    can you please make a video for beginners on how to become red on codeforces, thank you

  • @haricharanpal1761
    @haricharanpal1761 4 роки тому

    Can u make a video on how do use templates

  • @brandonstark4133
    @brandonstark4133 4 роки тому

    Why can't I join the MashUp GYMS(PROBLEMSETS)?

  • @LadderVictims
    @LadderVictims 6 місяців тому

    1:03:00 didnt understand the logic as to why f(i)= f(i-1)+1, if f(i) is the no of substrings ending with index i

    • @ashishischad
      @ashishischad 2 місяці тому

      same did you got the answer?

  • @a.htonmoy1896
    @a.htonmoy1896 3 роки тому +2

    Why this people in the chat talk more about other shits than the problems in a topic stream ! It's irritating 😑

  • @pranaygarg1370
    @pranaygarg1370 3 роки тому +4

    Bro I love your explanations but either stop doing live streams or don't talk to chat in the middle of a solution. Because when i watch recording out of 40 mins of a solution 20 mins is just random talks and its too annoying for us. Read chats when you switch between questions but not otherwise.

  • @udoigogoi6828
    @udoigogoi6828 3 роки тому

    Galen colin in cp:🔥🔥🔥🔥🔥🔥

  • @SonicCGames
    @SonicCGames Рік тому

    oh loawd im coming

  • @shivarajpatil8699
    @shivarajpatil8699 2 роки тому

    Do you actually Questions like this or do it in the mind?

  • @dheerajbhagchandani7529
    @dheerajbhagchandani7529 4 роки тому +1

    yeah it's good for me

  • @shreyashachoudhary480
    @shreyashachoudhary480 2 роки тому

    Thanks!

  • @itrvenky
    @itrvenky 3 роки тому +3

    ur too much into live chat!!...this turns irritating at a point

  • @docstyagi7775
    @docstyagi7775 3 роки тому +1

    In problem E, office keys. Taking a contiguous segment of keys is always optimal. Can this lead to a better complexity than O(people * keys).

  • @Dr.Cosmar
    @Dr.Cosmar 4 місяці тому

    Try about 48k more hours, you're still a noob after this.
    You're thinking woke me up.

  • @nasimnajand9697
    @nasimnajand9697 6 місяців тому

    Great!

  • @yashkumarsingh9713
    @yashkumarsingh9713 11 місяців тому

    do one for recursion

  • @isaacfrankagidi8715
    @isaacfrankagidi8715 2 місяці тому

    That is great

  • @josephwong2832
    @josephwong2832 3 роки тому

    awesome stream colin

  • @vinhnghiang1273
    @vinhnghiang1273 Рік тому

    what is this IDE?

  • @jacekratajczyk4547
    @jacekratajczyk4547 5 місяців тому

    yt wtf. I fall asleep for 4h xD

  • @MSISAmar
    @MSISAmar 4 роки тому

    Pls make more videos🙏

  • @hacksource1784
    @hacksource1784 2 роки тому

    GLAD I MET HACKERS SUMMIT WHO SORTED MY GRADES ISSUES,THEY CAN HELP YOU

  • @mionee_m
    @mionee_m Рік тому

    yeah i can really tell you are 17 right now. i couldn't sit for 10 seconds of this

  • @peachgypsy556
    @peachgypsy556 2 місяці тому

    Why the F*** did this interrupt my korean street food?????

  • @IvanManchur
    @IvanManchur 7 місяців тому

    @ColingGalen, do you drink coffee?

  • @vimmiduggal6658
    @vimmiduggal6658 2 роки тому +1

    1:23:58
    For personal use, please ignore

  • @Yash-x1m6t
    @Yash-x1m6t 10 місяців тому

    1:57:11

  • @Keitan97
    @Keitan97 Рік тому

    I set UA-cam on auto play when I was asleep… where the fuck am I?

  • @Armand-z3o
    @Armand-z3o 2 місяці тому

    dang microphone

  • @rightspotadvertising1786
    @rightspotadvertising1786 2 роки тому

    Woow woow

  • @KilgoreTroutAsf
    @KilgoreTroutAsf Рік тому

    This problem set is awful. Four problems in and none of them actually required dynamic programming to find a solution. In fact, all of them could be solved faster by paying attention and thinking the problem thru.

  • @pinyichang4680
    @pinyichang4680 2 роки тому

    dynamic