만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

티떱랜드

시간 제한2초메모리 제한512 MB

요약
줄을 K개의 연속한 묶음으로 나눌 때 각 묶음 내부의 모든 쌍의 어색함 합이 최소가 되도록 한다.
난이도

어려움10점 중 8점

유형
동적 계획법, 분할 정복, 누적 합
정답자
아직 제출이 없습니다

문제

티떱랜드에서 가장 인기 있는 놀이기구 앞에 NN명이 한 줄로 서 있다. 1번 사람이 줄의 가장 앞에 있고, NN번 사람이 가장 뒤에 있다.

이 놀이기구에는 열차가 KK대 있고, 사람들은 다음 순서로 탄다.

  • 첫 번째 열차에 줄의 앞에서부터 q1q_1명이 탄다.
  • 두 번째 열차에 그 다음 q2q_2명이 탄다.
  • 같은 방식으로 계속해서, KK번째 열차에 남은 qKq_K명이 탄다.

q1,q2,…,qKq_1, q_2, \dots, q_K는 모두 양수이고 ∑qi=N\sum q_i = N이다.

티떱랜드 사장 민혁이는 사람들이 모르는 사람과 함께 놀이기구를 타기 싫어한다는 사실을 알고 있다. 민혁이는 오늘 사람들을 행복하게 만들려고 최적의 q1,q2,…,qKq_1, q_2, \dots, q_K를 찾는다.

ii번 사람과 jj번 사람 사이에는 어색한 정도 uiju_{ij}가 정해져 있다. uij=ujiu_{ij} = u_{ji}이고, 모든 1≤i≤N1 \le i \le N에 대해 uii=0u_{ii} = 0이다.

한 열차의 어색함은 그 열차에 탄 사람으로 만들 수 있는 모든 쌍의 어색한 정도를 더한 값이다.

열차 KK대의 어색함의 합을 최소로 하는 q1,q2,…,qKq_1, q_2, \dots, q_K를 찾는 프로그램을 작성하시오.

입력

첫째 줄에 사람의 수 NN과 열차의 수 KK가 주어진다. (1≤N≤40001 \le N \le 4000, 1≤K≤min⁡(N,800)1 \le K \le \min(N, 800))

둘째 줄부터 NN개의 줄에 각각 정수 NN개가 주어진다. 이 수가 행렬 uu를 나타낸다. (0≤uij≤90 \le u_{ij} \le 9, uij=ujiu_{ij} = u_{ji}, uii=0u_{ii} = 0)

출력

열차의 어색함의 합의 최솟값을 출력한다.

힌트

첫 번째 예제에서는 (1, 2)와 (3, 4, 5)로 나누어 타면 최솟값이 된다.

두 번째 예제에서는 (1, 2, 3), (4, 5, 6), (7, 8)로 나누어 타면 최솟값이 된다.

예제3

  1. 예제 1

    입력
    5 2
    0 0 1 1 1
    0 0 1 1 1
    1 1 0 0 0
    1 1 0 0 0
    1 1 0 0 0
    
    예상 출력
    0
    
  2. 예제 2

    입력
    8 3
    0 1 1 1 1 1 1 1
    1 0 1 1 1 1 1 1
    1 1 0 1 1 1 1 1
    1 1 1 0 1 1 1 1
    1 1 1 1 0 1 1 1
    1 1 1 1 1 0 1 1
    1 1 1 1 1 1 0 1
    1 1 1 1 1 1 1 0
    
    예상 출력
    7
    
  3. 예제 3

    입력
    3 2
    0 2 0
    2 0 3
    0 3 0
    
    예상 출력
    2