BFS Luogu P1443 Horse's Traversal (My Algorithm Learning Road)

Luogu P1443 The Traversal of Horses (My Algorithm Learning Road)

Tags: Search Breadth-First Search (BFS) Queues
topic

#include<iostream>
#include<stdio.h>
#include<algorithm>
#include<queue>
using namespace std;
int xx[8]={2,2,1,1,-2,-2,-1,-1};
int yy[8]={1,-1,2,-2,1,-1,2,-2};
int mp[405][405];
struct horse
{
	int x,y,s;
};
int main()
{
	int n,m,sx,sy;
	scanf("%d%d%d%d",&n,&m,&sx,&sy);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			mp[i][j]=-1;
		}
	}
	queue <horse> Q;
	horse h;
	h.x=sx;
	h.y=sy;
	h.s=0;
	Q.push(h);
	mp[sx][sy]=0;
	while(!Q.empty())
	{
		for(int i=0;i<8;i++)
		{
			int dx=Q.front().x+xx[i];
			int dy=Q.front().y+yy[i];
			if(dx>=1&&dy>=1&&dx<=n&&dy<=m&&mp[dx][dy]==-1)
			{
				h.x=dx;
				h.y=dy;
				h.s=Q.front().s+1;
				Q.push(h);
				mp[dx][dy]=Q.front().s+1;
			}
		 }
		 Q.pop();
	}
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
		{
			printf("%-5d",mp[i][j]);
		}
		printf("\n");
	}
	return 0;
}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326080611&siteId=291194637