격자 위의 외계인
시간 제한1초메모리 제한256 MB
격자 각 칸을 두 영역 중 하나에 배정해 칸 보상의 합에서 경계 간선 비용을 뺀 값을 최대화합니다.
- 난이도
보통10점 중 7점
- 유형
- 그래프
- 정답자
- 아직 제출이 없습니다
문제
어느 행성의 외계인 는 모두 격자점 위에 산다. 물을 좋아하는 외계인도 있고 싫어하는 외계인도 있다. 이 성향을 친수성이라고 부르며, 외계인 의 친수성은 인 실수 로 나타낸다. 격자의 경계에 있지 않은 외계인은 상하좌우로 이웃이 4명이다. 경계 변에 있는 외계인은 이웃이 3명, 꼭짓점에 있는 외계인은 이웃이 2명이다.
이웃한 두 외계인 와 의 친밀도는 두 친수성 , 로 정한다.
이웃한 두 외계인의 친수성이 같으면 친밀도는 로 완벽하다. 이고 이면 인 최악의 상황이 벌어진다. 그림 1의 나 처럼 이웃이 아닌 쌍에는 친밀도를 정의하지 않는다.
외계인들은 친수성이 다른 무리 사이의 갈등을 줄이려고 울타리를 세우기로 했다. 그러려면 먼저 격자 공간을 서로 겹치지 않는 두 영역으로 나눠야 한다. 친수성 외계인이 사는 W 영역과, 물기 있는 환경을 싫어해서 친수성 값이 작은 소수성 외계인이 사는 Q 영역이다. 그다음 갈등하는 외계인을 갈라놓도록 Q 영역을 감싸는 닫힌 울타리를 세운다. 그림 1에서 빨간 점선이 그 울타리다. , , , , 는 울타리 안쪽인 Q 영역에 있고, , , , , 는 바깥쪽인 W 영역에 있다.

그림 1. 빨간 점선 울타리 세 개가 Q 영역을 W 영역과 갈라놓는다.
울타리를 세우는 방법은 아주 많다. 울타리를 세울 때는 친수성 외계인을 W 영역에, 소수성 외계인을 Q 영역에 넣는 편이 좋다. 또 이고 인 이웃 쌍의 친밀도 합을 되도록 작게 만들어야 한다. 여기서 는 외계인 가 Q 영역에 배정되었다는 뜻이다. 모든 외계인은 Q와 W 중 정확히 한 영역에 속한다.
이 분할 문제의 목적 함수 는 다음과 같다.
의 합은 격자에서 변으로 이어진 쌍 전체에 대해 더한 값이다.
격자점 위 외계인의 친수성이 주어질 때 를 구하는 프로그램을 작성하시오.
입력
입력은 표준 입력으로 받는다. 첫째 줄에 테스트 케이스의 개수 가 주어진다. 각 테스트 케이스의 첫째 줄에는 격자의 크기 이 주어진다 (). 이어지는 개 줄에는 격자점 에 사는 외계인의 친수성 가 행렬로 주어진다. 모든 는 인 실수이고, 소수점 아래가 정확히 두 자리다.
출력
출력은 표준 출력으로 한다. 각 테스트 케이스마다 한 줄씩, 실수 를 소수점 아래 두 자리까지 출력한다.