Hd7's blog

By Hd7, history, 6 years ago, In English

Hi Codeforces Community, I have just solved this problem.
Link problems
Even though I solved it by myself, i still feel i'm missing anything, i feel uncomfortable.
The problem requires we find out k ranges (size = m) in the way that sum of all elements in every ranges is maximal. I came up with the ideal that:
$$$f(i,j)$$$ is the maximum sum of all elements in j range (size = m) when we have already gone to a[i]. So

Unable to parse markup [type=CF_MATHJAX]

The answer will be $$$f(n,k)$$$.
I still feel like i don't understand it absolutely. As usual, i try to form my DP problem to a graph and find the shortest (or longest) path depended on statement.
I want to ask the way you approach for a DP problem.
Thanks in advance, i am studying dynamic programming.

Tags #dp
  • Vote: I like it
  • 0
  • Vote: I do not like it

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

I think the easiest way to understand dp problem is to imagine brute force solution. After that, u can see, which things happens many times (we calculate the same thing lots of times) (It calls "Recursion tree") Then, u can easy remember the value, which u got after first calculation (it calls "Memoisation") So solution is: write brute force solution + add memoisation -> PROFIT :)

what i am talking about: 59102892

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

    Brute force for problems like that is not easy (for me). Thanks for your reply