Here is what I understand:
I understood how divide and conquer works here. If DP(x) = Space[y] and DP(x+dx) = Space[y+dy] (where dy and dx are either both positive or negative) - we can use this fact to our advantage.
For example if F(2) is 4 and if F(4) is 10, and I am told that F(3) can only be between 4 and 10, I dont need to waste time searching for answer in spaces 1,2,3 or 10,11,12 etc. So I divide my search space and conquer the problem.
(Sorry for the long preface)
Okay, so how is this different from Knuth’s optimisation?
Yes, I went through this: Dynamic Programming Optimizations - Codeforces