P1443求debug
查看原帖
P1443求debug
364319
DIgnited楼主2021/4/11 16:32
//P1443
//std-1.1.4
#include<bits/stdc++.h>
#define sc scanf
#define pr printf
#define ull unsigned long long int
#define debug(x) pr("[Debug]This number now is %d\n",x);
using namespace std;
queue<int>a;
queue<int>b;
int n,m,sa,sb,p[401][401],vis[401][401],step=0;
int dx[9]={0,-1,-2,-2,-1,1,2,2,1};
int dy[9]={0,-2,-1,1,2,2,1,-1,-2};
void bfs(int x,int y);
int main()
{
	memset(p,-1,sizeof(p));
	memset(vis,true,sizeof(vis));
	sc("%d%d",&n,&m,&sa,&sb);
	bfs(sa,sb);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=m;j++)
			pr("%-5d ",p[i][j]);
		pr("\n");
	}
	return 0;
}
void bfs(int x,int y)
{
	a.push(x);b.push(y);
	p[x][y]=step;
	do
	{
		step++;
		for(int i=1;i<=8;i++)
		{
			int nx=a.front()+dx[i];
			int ny=b.front()+dy[i];
			if(vis[nx][ny]==true&&nx>=1&&ny>=1&&nx<=n&&ny<=m)
			{
				a.push(nx);
				b.push(ny);
				vis[nx][ny]=false;
				p[nx][ny]=step;
			}
		}
		a.pop();
		b.pop();
	}while(a.empty()==0);
}
2021/4/11 16:32
加载中...