ygo22   7년 전

제 알고리즘은 dfs에 dp 메모제이션을 이용해서 가지치기를 하는것입니다.

예를 들면 대나무숲을 방문해서 dfs로 가장 최대로 살수있는 날을 찾아 

다른 배열에 저장해놓습니다. 그래서 방문한곳에 다시 온다면 그 자리의

최대값+1  을 넘겨줍니다. 이 방식으로 가지치기를 했습니다만 계속 틀린답이네요

반례를 찾기 힘들어서 질문글을 남깁니다.

아..마지막에 음수랑 0도 정수안에 포함되나 해서 다 만들어놓은거에 추가 구현하여 

코드가 지저분합니다. 제가 놓친 부분이 무엇일까요

game2k   7년 전

입력에 음수, 0이 들어올 경우 틀리도록 했는데 정답인걸 봐서 입력은 전부 양수인것 같네요

game2k   7년 전

일단 배열의 범위를 체크해 보세요.

(0, 0) 부터 체크할 경우 if (map[nx][ny] > map[x][y])  에서 nx = -1, ny = 0 이 들어가요.

game2k   7년 전

4
16 15 14 13
9 10 11 12
8 7 6 5
1 2 3 4

답 16

댓글을 작성하려면 로그인해야 합니다.