살려주세요 (이번엔 진짜에여) 모르겠어여!!!!!!!!!!!!!!!!!!!!!!!! > 자유게시판 : 정보올림피아드&알고리즘

살려주세요 (이번엔 진짜에여) 모르겠어여!!!!!!!!!!!!!!!!!!!!!!!!

페이지 정보

작성자 posyhm 백현민 (124.♡.188.132) 작성일20-06-05 21:08 조회178회 댓글1건

본문

장기 BFS
















#include 
using namespace std;

typedef struct ITEM{
    int x;
    int y;
    int cnt;
} item;

int check[105][105];
int M, N;
int malX, malY, zolX, zolY;
int dx[8] = { -2, -2, +2, +2, +1, -1, +1, -1};
int dy[8] = { +1, -1, +1, -1, -2, -2, +2, +2};
queue bfsQueue;

int main(void){
    scanf("%d %d", &N, &M);
    scanf("%d %d %d %d", &malX, &malY, &zolX, &zolY);

    check[malX][malY] = 1;
    item tmp;
    tmp.x = malX;
    tmp.y = malY;
    tmp.cnt = 0;
    bfsQueue.push(tmp);

    while(1){
        item frontItem = bfsQueue.front();
        for(int i = 0; i < 8; i++){
            if(frontItem.x+dx[i] >= 0 && frontItem.x+dx[i] < N && frontItem.y+dy[i] >= 0 && frontItem.y+dy[i] < N){
                if(check[frontItem.x+dx[i]][frontItem.y+dy[i]] == 0){
                    tmp.x = frontItem.x+dx[i];
                    tmp.y = frontItem.y+dy[i];
                    tmp.cnt = frontItem.cnt+1;
                    if(tmp.x == zolX && tmp.y == zolY){
                        printf("%d", tmp.cnt);
                        return 0;
                    }
                    bfsQueue.push(tmp);
                }
            }
        }
        bfsQueue.pop();
    }
}


이게 왜 메모리 리밋이 나올까요
추천 1

댓글목록

오정택님의 댓글

오정택 아이피 106.♡.133.41 작성일

check를 1로 만드는 부분이 없고 check 배열 크기가 [1005][1005]이어야 하는데 [105][105]여서 그런것입니다


경기도 안양시 동안구 평촌대로 109 협성골드프라자 601호

TEL : 031-360-4144 FAX : 031-388-0996 E-mail : hancomc@hotmail.com, comkiwer@naver.com

Copyrightⓒ 2010-2019 jungol. All right reserved.

TOP