[데이터 구조] 게임 보조 문제 풀이 보고서 연속 보기
'연보' 는 퍼 즐 게임 이다.'연속 보기' 는 같은 두 장의 카드 를 세 개 이내 의 직선 으로 연결 하면 없어 지고 규칙 은 쉽게 손 에 들어온다.이 문제 의 작성 자 는 시 뮬 레이 션 을 통 해 게임 을 계속 볼 수 있 습 니 다. 컴퓨터 시 뮬 레이 션 을 하 는 과정 은 다음 과 같 습 니 다. 1. 본 게임 을 분석 하고 이 게임 을 두 개의 배열 로 바 꿉 니 다.0 은 공백 구역 을 나타 내 고 숫자 는 이 게임 카드 가 게임 에 나타 난 몇 번 째 게임 카드 임 을 나타 낸다.2. 광범 위 한 우선 검색 알고리즘 을 이용 하여 두 게임 카드 가 없어 질 수 있 는 지 판단 합 니 다.3. 프로그램 시 뮬 레이 터 가 클릭 하면 제거 할 수 있 는 게임 카드 한 쌍 을 제거 합 니 다.한 게임 에 대해 2 차원 배열 로 전환 하면 다음 과 같다. 0 0 0 0 0 0 0 0 01 0 0 0 0 3 0 0 0 0 0 0 0 0 0 0 1 0 은 두 배열 의 줄, 열, 두 배열, 시작 요소 의 좌표, 종료 요소 의 좌 표를 입력 하여 시작 게임 카드 와 종료 게임 카드 가 없어 질 수 있 는 지 판단 한다.
입력
4 5
0 0 0 0 0 0 1 2 0 0 0 0 3 4 0 0 0 0 1 0
1 1
3 3
출력
TRUE
AcCode
//
// main.cpp
//
//
// Created by jetviper on 2017/3/26.
// Copyright © 2017 jetviper. All rights reserved.
//
#include
#define up 1
#define down 2
#define left 3
#define right 4
int chess[1000][1000]={0};
int reach[1000][1000]={0};
int n,l;
int startx,starty,endx,endy;
void bfs(int x,int y,int count,int way){
if(count>3||x<0||y<0||x>(n-1)||y>(l-1))return;
if(chess[x][y]!=chess[startx][starty]&&chess[x][y]!=0)return;
if(reach[x][y]==0||reach[x][y]>=count){
reach[x][y]=count;
switch(way){
case up:{
bfs(x-1,y,count,up);
bfs(x,y+1,count+1,right);
bfs(x+1,y,count+1,down);
bfs(x,y-1,count+1,left);
break;
}
case right:{
bfs(x-1,y,count+1,up);
bfs(x,y+1,count,right);
bfs(x+1,y,count+1,down);
bfs(x,y-1,count+1,left);
break;
}
case down:{
bfs(x-1,y,count+1,up);
bfs(x,y+1,count+1,right);
bfs(x+1,y,count,down);
bfs(x,y-1,count+1,left);
break;
}
case left:{
bfs(x-1,y,count+1,up);
bfs(x,y+1,count+1,right);
bfs(x+1,y,count+1,down);
bfs(x,y-1,count,left);
break;
}
}
}
}
int main() {
scanf("%d%d",&n,&l);
for(int i =0;i0){
printf("TRUE
");
}
else {
printf("FALSE
");
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.