줄을 K개의 연속한 묶음으로 나눌 때 각 묶음 내부의 모든 쌍의 어색함 합이 최소가 되도록 한다.
어려움8동적 계획법분할 정복누적 합아직 제출이 없습니다시간 제한2초메모리 제한512 MB티떱랜드에서 가장 인기 있는 놀이기구 앞에 N명이 한 줄로 서 있다. 1번 사람이 줄의 가장 앞에 있고, N번 사람이 가장 뒤에 있다.
이 놀이기구에는 열차가 K대 있고, 사람들은 다음 순서로 탄다.
q1,q2,…,qK는 모두 양수이고 ∑qi=N이다.
티떱랜드 사장 민혁이는 사람들이 모르는 사람과 함께 놀이기구를 타기 싫어한다는 사실을 알고 있다. 민혁이는 오늘 사람들을 행복하게 만들려고 최적의 q1,q2,…,qK를 찾는다.
i번 사람과 j번 사람 사이에는 어색한 정도 uij가 정해져 있다. uij=uji이고, 모든 1≤i≤N에 대해 uii=0이다.
한 열차의 어색함은 그 열차에 탄 사람으로 만들 수 있는 모든 쌍의 어색한 정도를 더한 값이다.
열차 K대의 어색함의 합을 최소로 하는 q1,q2,…,qK를 찾는 프로그램을 작성하시오.
첫째 줄에 사람의 수 N과 열차의 수 K가 주어진다. (1≤N≤4000, 1≤K≤min(N,800))
둘째 줄부터 N개의 줄에 각각 정수 N개가 주어진다. 이 수가 행렬 u를 나타낸다. (0≤uij≤9, uij=uji, uii=0)
열차의 어색함의 합의 최솟값을 출력한다.
첫 번째 예제에서는 (1, 2)와 (3, 4, 5)로 나누어 타면 최솟값이 된다.
두 번째 예제에서는 (1, 2, 3), (4, 5, 6), (7, 8)로 나누어 타면 최솟값이 된다.