Help needed in a DP Optimisation Problem 
Difference between en5 and en6, changed 2 character(s)
I've been stuck on this problem for a while [(Lazy Cows USACO 2005 US Open Gold)](http://poj.org/problem?id=2430) . I was able to get the recurrence correct . But my naive approach ( $\mathcal{O}(N^2 K)$ ) TLEs .↵

First I compressed the positions by sorting them based on their column and breaking ties using the row number↵

Then I pre-processed 3 arrays ↵

1. $costH1[i][j]$ stores minimum area covered using a single horizontal rectangle , from $i^{th}$ smallest position to $j^{th}$ . If it's not possible (cows are not entirely up or entirely down) then its $INF$.↵

2. $costH2[i][j]$ stores minimum area covered using 2 horizontal rectangles . If it can be covered with a single rectangle then its $INF$.↵

3. $costV[i][j]$ stores minimum area covered using a single vertical rectangle . To be more precise , its a rectangle with top left coordinate at (1 , coordinate[i]) and bottom right at (2 , coordinate[j])↵

Using these 3 arrays ↵

$DP[i][j]$ stores the minimum area covered by $i$ rectangles for a prefix area till $j^th$ column.↵
 ↵
![ ](https://latex.codecogs.com/gif.latex?%5Cbg_white%20DP%5Bi%5D%5Bj%5D%20%3D%20%5Cmin_%7Bk%20%3D%200%7D%5E%7Bk%20%3C%20j%7D%20min%28DP%5Bi-1%5D%5Bk%5D+costV%5Bk+1%5D%5Bj%5D%2C%20%5C%5C.%20%5Chspace%7B120%7D%20DP%5Bi-1%5D%5Bk%5D%20+%20costH1%5Bk+1%5D%5Bj%5D%2C%5C%5C.%20%5Chspace%7B120%7D%20DP%5Bi-2%5D%5Bk%5D+costH2%5Bk+1%5D%5Bj%5D%29)↵

Base Case↵

$DP[0][j] = INF$↵

$DP[1][j] = min(costV[0][i] , costH1[0][i])$↵

$DP[i][0] = 0$↵

My Submission : [Commented Code](https://gist.github.com/bhi5hmaraj/9e71d061325df12ca1087be0ee52325c)↵

Can someone help me in optimising this recurrence relation.  

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en8 English bhishma 2017-07-26 23:19:55 257 Solved
en7 English bhishma 2017-07-24 16:20:18 4 changed base case 2
en6 English bhishma 2017-07-23 16:51:14 2
en5 English bhishma 2017-07-23 11:42:12 81 (published)
en4 English bhishma 2017-07-23 11:40:28 93
en3 English bhishma 2017-07-23 11:36:18 572 Tiny change: 'g_white%20%5Clarge%20DP%5Bi' -> 'g_white%20DP%5Bi'
en2 English bhishma 2017-07-23 11:01:58 555
en1 English bhishma 2017-07-23 10:46:28 438 Initial revision (saved to drafts)