화성 박테리아 배열

시간 제한1초메모리 제한128 MB

요약
이진 트리의 각 내부 노드에서 좌우 서브트리 순서를 뒤집을지 결정해 최종 리프 배열에서 인접한 쌍의 거리 합을 최소화하는 문제입니다.
난이도

어려움10점 중 8점

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

문제

과학자들은 화성에서 특이한 박테리아를 발견했다. 이 박테리아는 처음에 한 마리에서 시작하며, 한 세대가 지날 때마다 각 박테리아가 두 마리로 갈라지고 원래의 박테리아는 사라진다. 따라서 K+1K+1세대에는 2K2^K마리의 박테리아가 있다.

과학자들은 마지막 세대의 박테리아를 1번부터 2K2^K번까지 번호 붙였다. 번호는 어떤 조상 박테리아의 후손들도 항상 연속된 번호 구간을 이루도록 붙어 있다. 예를 들어 KK세대 박테리아들의 후손은 {1,2}\{1,2\}, {3,4}\{3,4\}, ..., {2K−1,2K}\{2^K-1,2^K\}이고, K−1K-1세대 박테리아들의 후손은 크기 4의 연속 구간들이 된다. 같은 방식으로 2세대의 두 박테리아의 후손은 각각 {1,2,…,2K−1}\{1,2,\ldots,2^{K-1}\}와 {2K−1+1,…,2K}\{2^{K-1}+1,\ldots,2^K\}이다.

박테리아를 다시 나열할 때도 이 성질을 유지해야 한다. 즉, 모든 조상 박테리아에 대해 그 후손들이 새 배열에서도 하나의 연속된 구간을 이루어야 한다. 이는 계보를 나타내는 완전 이진트리의 각 내부 정점에서 왼쪽 후손 묶음과 오른쪽 후손 묶음의 순서를 독립적으로 바꾸는 것과 같다.

모든 박테리아 쌍 사이에는 반발력 값이 주어진다. 두 박테리아가 새 배열에서 이웃하면, 두 박테리아 사이의 거리는 적어도 그 반발력 값이어야 한다. 배열의 길이는 이웃한 두 박테리아 사이 거리의 합이다. 위의 계보 조건을 지키면서 만들 수 있는 배열의 최소 길이를 구하시오.

입력

첫 줄에 양의 정수 KK가 주어진다. (1≤K≤9)(1 \le K \le 9)

이후 2K2^K개의 줄에 걸쳐 반발력 행렬이 주어진다. 각 줄에는 2K2^K개의 정수가 있으며, 모든 값은 00 이상 10610^6 이하이다. mm번째 줄의 nn번째 수는 박테리아 mm과 박테리아 nn 사이의 반발력이다. 행렬은 대칭이고, 같은 박테리아끼리의 반발력은 00이다.

출력

조건을 만족하는 배열의 최소 길이를 출력한다.

예제2

  1. 예제 1

    입력
    2
    0 7 2 1
    7 0 4 3
    2 4 0 5
    1 3 5 0
    
    예상 출력
    13
    
  2. 예제 2

    입력
    3
    0 2 6 3 4 7 1 3
    2 0 7 10 9 1 3 6
    6 7 0 3 5 6 5 5
    3 10 3 0 9 8 9 7
    4 9 5 9 0 9 8 4
    7 1 6 8 9 0 8 7
    1 3 5 9 8 8 0 10
    3 6 5 7 4 7 10 0
    
    예상 출력
    32