ZOJ_1091-Knight Moves
AC 코드:
#include<stdio.h>
#include<string.h>
#define max 50
char a[max][max];
int vis[max][max];
int dir[8][2]={{2,1},{-2,1},{2,-1},{-2,-1},{1,2},{1,-2},{-1,2},{-1,-2}};
struct node
{
int x,y,step;
}queue[max*max];
char s1[max];
char s2[max];
int x1,y1,x2,y2;
void bfs(int x,int y)
{
struct node now,pre;
queue[0].x=x1;
queue[0].y=y1;
queue[0].step=0;
int e=0,h=1;
while(e<h)
{
pre=queue[e];
if(pre.x==x2&&pre.y==y2)
{
printf("%d knight moves.
",pre.step);
return;
}
int i;
for(i=0;i<8;i++)
{
now.x=pre.x+dir[i][0];
now.y=pre.y+dir[i][1];
now.step=pre.step+1;
if(now.x>=1&&now.x<=8&&now.y>=1&&now.y<=8&&!vis[now.x][now.y])
{
vis[now.x][now.y]=1;
queue[h++]=now;
}
}
e++;
}
}
int main()
{
while(scanf("%s%s",s1,s2)!=EOF)
{
memset(vis,0,sizeof(vis));
x1=s1[0]-'a'+1;
y1=s1[1]-'0';
x2=s2[0]-'a'+1;
y2=s2[1]-'0';
printf("To get from %s to %s takes ",s1,s2);
bfs(x1,y1);
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.