미궁 문제
기점에서 종점까지 최단로의 경로를 인쇄하라고 합니다.구조체를 설정하여 선구와 현재 번호를 기록하고 그 종점의 번호를 찾아 출력 좌표로 귀속시키면 된다.
#include
#include
#include
#include
#include
#include
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
const int MAXN=30;
int dx[4]={0,0,1,-1};
int dy[4]={-1,1,0,0};
struct node{
int x,y,pre,n;//pre n
}point[MAXN];
int mp[5][5],vis[5][5];
int bfs(){
memset(vis,0,sizeof(vis));
int cnt=0;
point[0]={0,0,-1,0};
vis[0][0]=1;
queue Q;
Q.push(point[0]);
node t;
while(!Q.empty()){
t=Q.front();
Q.pop();
int nowx=t.x,nowy=t.y,now=t.n;
if(nowx==4&&nowy==4)return now;
for(int i=0;i<4;i++){
int gx=nowx+dx[i],gy=nowy+dy[i];
if(gx<5&&gy<5&&gx>=0&&gy>=0&&mp[gx][gy]==0&&!vis[gx][gy])
{vis[gx][gy]=1;
point[++cnt]={gx,gy,now,cnt};
Q.push(point[cnt]);
}
}
}
}
void dfs(int x){
if(point[x].n)dfs(point[x].pre);
printf("(%d, %d)
",point[x].x,point[x].y);
}
int main(){
for(int i=0;i<5;i++)
for(int j=0;j<5;j++)
scanf("%d",&mp[i][j]);
int ans=bfs();
dfs(ans);
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.