Se for necessário dividir a matriz em exatamente k subsegmentos, o segundo parâmetro é simplesmente adicionado na programação dinâmica - em quantos segmentos dividir.
Ou seja, agora vamos considerar o seguinte dp:
dp[i][j] é a resposta para os primeiros i elementos, se os dividirmos em exatamente j segmentos.
Cuidado com estados inválidos.
O recálculo da dinâmica é o mesmo, mas levando em consideração o segundo parâmetro. Ou seja, contando dp[i][k] e classificando pela borda esquerda do último subsegmento j, recalculamos dp[i][k] até dp[j - 1][k - 1] e o valor do segmento [j;i].