Add penalty λ per region. Penalized DP: dpλ[i] = min cost to partition first i levels into any number of regions, with penalty. Transition: dpλ[i]=minp<i(dpλ[p]+cost(p+1,i)+λ). The +λ is the per-region penalty.
Now you have O(n) states (one per position). If cost(l,r) can be computed in O(1) with preprocessing, total time is O(n2) per binary search iteration, or O(n2logC) overall.