heroswift15   5년 전

과연 진짜 반례가 없을까요?????????  이 BFS 에 오류가 있는걸꺼요??.

slsnsepdpd   5년 전

if(visit[nexty][nextx][0]==0 && nextchk==0)
{
if(nextchk==0){
visit[nexty][nextx][0]=1;
enque(nexty, nextx, nextrange+1,nextchk);

}
}

55번 줄 이 부분이 문제 아닐까요? 다음 칸이 빈칸이면 벽을 부순 적이 있던 지 없던 지 상관없이 다음 칸으로 갈 수 있어야 하는 것 같은데요.

그리고 또 문제점으로 보이는 것이 55번줄 부터 지도를 체크할 때 

if(visit[nexty][nextx][0] == 0).. 

이런식으로 하는데요, 이 부분을 visit[nexty][nextx][nextchk] 이런 식으로 해야 현재 상태의 맵(벽을 부수기 전 or 부순 후인 지)을 올바르게 서치할 수 있을 것 같은데요.


slsnsepdpd   5년 전

8 8
01000100
01010100
01010100
01010100
01010100
01010100
01010100
00010100

아래 어떤 분이 올려주신 반례입니다.

정답은 29입니다.

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