배열을 정확히 k개의 하위 세그먼트로 분할해야 하는 경우 동적 프로그래밍에서 두 번째 매개변수(분할할 세그먼트 수)가 추가됩니다.
즉, 이제 다음 dp를 고려할 것입니다.
dp[i][j]는 첫 번째 i개 요소를 정확히 j개의 세그먼트로 나눈 경우에 대한 답입니다.
잘못된 상태에 주의하세요.
역학의 재계산은 동일하지만 두 번째 매개변수를 고려합니다. 즉, dp[i][k]를 세고 마지막 하위 세그먼트 j의 왼쪽 경계를 통해 정렬하면 dp[i][k]를 통해 dp[j - 1][k - 1]과 세그먼트의 값을 다시 계산합니다. [j;i].