Dynamic Programming21 sections · 916 units
Open in Course

A Different Pattern

The problem

In the previous section, you learned that Quadrangle Inequality (QI) improvement works when optimal splits are monotonic. But what if your cost function doesn't satisfy QI? Consider dp[i]=minj<i(dp[j]+(sisj)2)dp[i] = \min_{j < i}(dp[j] + (s_i - s_j)^2) where ss is a prefix sum.

Expanding: dp[i]=minj(dp[j]+si22sisj+sj2)dp[i] = \min_j(dp[j] + s_i^2 - 2s_i s_j + s_j^2). The term 2sisj-2s_i s_j mixes ii and jj. This isn't QI-friendly. But look closer: for fixed ii, this is linear in sjs_j. That's the pattern CHT exploits.