2014-02-07 2 views
4

각 행에 정확히 하나의 0이 아닌 요소가 있고 각 열에 정확히 1이 아닌 0 요소 요소는 양수 또는 음수 일 수 있음). 우리는 최대 합계 부분 행렬을 찾고 싶습니다. 얼마나 효율적으로 그렇게 할 수 있습니까?서브 매트릭스 NxN 행렬의 최대 합계와 N-nonzero 값을 갖는 N-nonzero 값 만있는 경우 O (N^2)

매트릭스의 크기는 N × N이며 0이 아닌 요소는 N 개만 있습니다. N은 너무 커서 O (N) 알고리즘을 사용할 수 없습니다. 누구든지 O (N), O (N log N) 또는이 시간 복잡성을 해결하는 방법을 알고 있습니까?

감사합니다.

+0

"사소한 상황"이란 무엇입니까? – Matt

+0

N 개의 0이 아닌 요소의 위치를 ​​알 수없고 (스파 스 매트릭스가 아닌) 값이 양수 및 음수라고 가정합니다. – IdeaHat

+0

스파 스 매트릭스를 사용하지 않는다면 적어도 모든 요소를 ​​읽어야하기 때문에 O (N^2)가 가능한 최선입니다. 아마도 Kadane 's Algorithm을 두 가지 차원으로 일반화했을 것입니다. http://stackoverflow.com/questions/12339280/find-max-sum-of-elements-in-array – Adam

답변