만드는 중입니다

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

추상 원형 덮개

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

요약
길이 l인 호마다 시작점 i에 따른 비용 c[i][l]이 주어질 때, 원 위의 n개 점을 정확히 한 번씩 덮는 호 k개의 최소 비용을 각 k마다 구합니다.
난이도

어려움10점 중 8점

유형
동적 계획법, 구간, 행렬
정답자
아직 제출이 없습니다

문제

원 위에 서로 다른 nn개의 점이 있으며, 시계 방향으로 00부터 n−1n - 1까지 번호가 매겨져 있습니다. 길이가 ℓ\ell (1≤ℓ≤n1 \leq \ell \leq n)이고 시작점이 ii (0≤i≤n−10 \leq i \leq n - 1)인 원형 구간은 시계 방향으로 연속된 ℓ\ell개의 점으로 이루어진 튜플입니다. 즉 i,(i+1) mod n,(i+2) mod n,…,(i+ℓ−1) mod ni, (i + 1) \bmod n, (i + 2) \bmod n, \ldots, (i + \ell - 1) \bmod n 입니다. 시작점이 0,1,…,n−10, 1, \ldots, n - 1인 길이 nn의 원형 구간은 같은 점 집합을 포함하더라도 서로 다른 구간으로 봅니다.

각 원형 구간 (i,ℓ)(i, \ell)에는 정수 비용 ci,ℓc_{i,\ell}가 주어집니다. 11부터 nn까지의 각 kk에 대해, 모든 점이 정확히 하나의 구간에 포함되도록 kk개의 원형 구간을 골랐을 때 비용 합의 최솟값을 구하세요.

ci,ℓc_{i,\ell}는 비교적 작은 양의 정수라는 것 외에는 따로 만족해야 할 성질이 없습니다. 11 이상 10610^6 이하의 정수로 이루어진 n×nn \times n 배열이라면 모두 유효한 입력입니다.

시간 제한이 다소 빡빡합니다.

입력

첫 줄에 점의 개수 nn (1≤n≤8501 \leq n \leq 850)이 주어집니다. 이어지는 nn개의 줄 중 (i+1)(i+1)번째 줄에는 공백으로 구분된 정수 ci,1,ci,2,…,ci,nc_{i,1}, c_{i,2}, \ldots, c_{i,n} (1≤ci,ℓ≤1061 \leq c_{i,\ell} \leq 10^6, 1≤ℓ≤n1 \leq \ell \leq n)이 주어집니다.

출력

공백으로 구분된 정수 nn개를 출력합니다. kk번째 정수는 모든 점을 정확히 한 번씩 덮는 kk개의 원형 구간 비용 합의 최솟값입니다.

예제2

  1. 예제 1

    입력
    3
    10 12 23
    7 4 11
    8 5 3
    
    예상 출력
    3 12 25
    
  2. 예제 2

    입력
    1
    15
    
    예상 출력
    15