만드는 중입니다

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

도시

시간 제한4초메모리 제한1024 MB

요약
N×N 격자에서 개발된 칸과 관광 가치가 주어집니다. 미개발 칸 K개를 골라 도시가 되는 칸의 관광 가치 합을 최대로 만드는 문제입니다.
난이도

보통10점 중 7점

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

문제

정사각형 나라는 N×NN \times N개의 정사각형 구역으로 나누어진 격자 형태이다. 지도에는 개발된 구역이 11, 개발되지 않은 구역이 00으로 표시되어 있다. 어떤 구역이 개발되어 있고 상하좌우로 인접한 4개의 구역도 모두 개발되어 있으면, 이 구역은 도시가 된다. 가장자리에 있는 구역은 도시가 될 수 없다.

각 구역은 관광가치를 갖는다. ii번째 행의 jj번째 칸이 도시가 되면 이 구역의 관광가치는 VijV_{ij}이고, 도시가 아니면 관광가치는 00이다.

정사각형 나라에는 KK개의 구역을 추가로 개발할 자본이 있다. 나라가 그다지 부유하지 않아서 KK는 항상 개발되지 않은 구역의 수보다 작거나 같다. 관광 수익을 최대화하기 위해 KK개의 구역을 새로 개발한 뒤, 도시의 관광가치 합의 최댓값을 구하라.

입력

첫 번째 줄에 NN, KK가 공백으로 구분되어 주어진다.

두 번째 줄부터 NN개의 줄에 걸쳐 ii번째 줄에 지도 Mi1,Mi2,⋯ ,MiNM_{i1}, M_{i2}, \cdots, M_{iN}이 공백으로 구분되어 주어진다. MijM_{ij}가 11이면 ii번째 행의 jj번째 칸은 이미 개발되어 있고, 00이면 개발되어 있지 않다.

N+2N+2번째 줄부터 NN개의 줄에 걸쳐 ii번째 줄에 각 구역의 관광가치 Vi1,Vi2,⋯ ,ViNV_{i1}, V_{i2}, \cdots, V_{iN}이 공백으로 구분되어 주어진다.

출력

KK개의 구역을 개발한 후 도시의 관광가치 합의 최댓값을 출력한다.

제한

  • 주어지는 모든 수는 정수이다.
  • 3≤N≤123 \leq N \leq 12
  • 0≤K≤500 \leq K \leq 50
  • Mij∈{0,1}M_{ij} \in \{0, 1\} (1≤i,j≤N1 \le i,j \le N)
  • 0≤Vij≤1 000 0000 \leq V_{ij} \leq 1\,000\,000 (1≤i,j≤N1 \le i,j \le N)
  • KK는 항상 개발되지 않은 구역의 수보다 작거나 같다.

예제2

  1. 예제 1

    입력
    4 3
    0 0 1 0
    0 1 0 0
    0 0 0 0
    1 0 0 0
    29 67 78 70
    65 58 98 43
    43 11 91 88
    68 45 77 58
    
    예상 출력
    98
    
  2. 예제 2

    입력
    5 1
    1 1 1 1 1
    1 1 1 1 1
    1 1 0 1 1
    1 1 1 1 1
    1 1 1 1 1
    1 2 3 4 5
    5 4 3 2 1
    1 2 3 4 5
    5 4 3 2 1
    1 2 3 4 5
    
    예상 출력
    27