amsen's blog

By amsen, history, 6 years ago, In English

How to become strong and expert in DP ?

can any body tell me some problems and some links to read ?

thanks all!

 
 
 
 
  • Vote: I like it
  • -3
  • Vote: I do not like it

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

DP for Dynapic Programming?

»
6 years ago, # |
  Vote: I like it +9 Vote: I do not like it

I suggest to you reading this article with practicing examples mentioned in it.

https://www.topcoder.com/community/data-science/data-science-tutorials/dynamic-programming-from-novice-to-advanced/

»
6 years ago, # |
  Vote: I like it +1 Vote: I do not like it

I'd suggest you reading Nicolaus Wirt — "Algorithms and Data Structures". Chapter "Dynamic Programming"

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Practice makes perfect.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

The core of DP is to turn the problem into a formula, to generate an new algorithm. It is likely that 100 DP problems have 101 formulas(by my friend). So actually, the only way to improve DP skill is to practice more and AC different kind of DP.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    could you please say me some problems in any online judges?

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      (⊙ˍ⊙)I'm a Chinese ACMer, I mainly solve some problems on Chinese OJ. You can find many DP problems through the tag in 'Problem Set' on CF. I learn my DP skill on this page problem ID 1003(largest sub-string) 1081(largest sub-rectangle) 1159(longest common sub-sequence) 1025(longest increasing sub-sequence) 2602 1059(two package problem) is some primary problem. If you are satisfied with the problem, you may solve other problem on the list, just skip ones with Chinese description. It may be hard for you to find the solution as you can't read others' solution on HduOJ. HUST is another big OJ in China, you may register an account and search the solution in 'STATUS' (OJ 'HDU' 'Accepted'), you can see the code of solution by clicking green ones below language.

    • »
      »
      »
      16 months ago, # ^ |
        Vote: I like it -6 Vote: I do not like it

      Now you are master, can you please tell how you improve your dp?

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

      Any tips to improve everything including dp?.. except practice what else??

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

        except practice what else??

        Get a brain transplant (if that is even possible). That's pretty much all you need. My condolences that God didn't give you a brain that is as good as those of red coders. Lmao.

        On a more serious note, please get a life. Not everyone is suited for CP.

        • »
          »
          »
          »
          »
          16 months ago, # ^ |
          Rev. 2   Vote: I like it -18 Vote: I do not like it

          Haha..bro I have a life and pls focus on your life and moreover this question was not for you and still you answered (and that too with a fake account) so that shows what kind of life you r living right now...lol

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

Just with one thing. "Practice"

There are lots of problem about DP on codeforces , LightOJ or other websites.

You can start with easiest one. Then you will see you are improving day by day.

»
6 years ago, # |
  Vote: I like it 0 Vote: I do not like it

try these primary level DP problems posted by ThunderStroke i this blog they really helped me to start with DP .

»
6 years ago, # |
  Vote: I like it +1 Vote: I do not like it

solve the problems in these answers on Quora

when you are thinking about the solution try to solve it with recursion and memorization,don't submit the recursion/memorization solution,after your solution is right you can easily convert it to DP.

Don't forget to practice a lot ,because better results needs hard working :)

I'm telling you to do this because this is the strategy to start DP(because DP is an optimization for recursion),sorry for my bad English.

  • »
    »
    6 years ago, # ^ |
      Vote: I like it 0 Vote: I do not like it

    Is there any resource how to convert memoization to DP?

    • »
      »
      »
      6 years ago, # ^ |
        Vote: I like it 0 Vote: I do not like it

      Just think about what dp results you need to construct some larger dp result. In recursion, you would say something like:

      dp(k)= dp(k-1) + dp(k-2)
      

      If you think about program flow, once the function dp hits its base cases, then it starts returning answers to increasingly larger problems. So you know later indices depend only on earlier ones, so you iterate from earliest to latest indices in your recursion.

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

      Try reading this...

      Read some solutions in recursion and DP (the solution is for the same problem) and you'll understand... It may be hard in the beginning...,but don't stop practicing :)

      sorry for my bad English

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

Now you are master can u tell how u did it??