记忆化搜索,一个点TLE,求指导
  • 板块P1443 马的遍历
  • 楼主_Victor
  • 当前回复5
  • 已保存回复5
  • 发布时间2022/11/15 18:22
  • 上次更新2023/10/27 02:52:07
查看原帖
记忆化搜索,一个点TLE,求指导
101654
_Victor楼主2022/11/15 18:22
#include<bits/stdc++.h>
using namespace std;
int n,m,a,b,s[500][500];
int dx[8]={-1,-2,-2,-1,1,2,2,1},dy[8]={-2,-1,1,2,2,1,-1,-2};
void dfs(int x,int y,int k)
{
	s[x][y]=k;
	for(int i=0;i<8;i++)
	{
		int xx=x+dx[i],yy=y+dy[i];
		if(s[xx][yy]==-1||s[xx][yy]>k+1&&xx>0&&yy>0&&x<=n&&yy<=m)
			dfs(xx,yy,k+1);
	}
}
int main()
{
	cin>>n>>m>>a>>b;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
			s[i][j]=-1;
	dfs(a,b,0);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			cout<<s[i][j]<<" ";
		cout<<endl;
	}
	return 0;
}
2022/11/15 18:22
加载中...