Take jobs = [7, 1, 7, 1, 7, 1] with d = 3. Fill day : dp[1][0..5] are all since is the running max.
For day , consider dp[2][3]: try cuts at . With , day covers only job (value ), giving dp[1][2] + 1 = 8. With , day covers jobs through with max , giving dp[1][0] + 7 = 14. The best is .
For day , compute dp[3][5]. Putting the last alone on day gives dp[2][4] + 1. Since dp[2][4] = 8, you get dp[3][5] = 9.
You fill an table, and each cell scans up to split points. Total time is . Space is for the DP table.