两个样例都输出2,求调
查看原帖
两个样例都输出2,求调
1277097
GAOSInb楼主2025/7/29 20:02

有大佬可以帮忙看一下哪里错了吗?

#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node{
	int x,y,c;
};
int xx,yy,vis[55][55];
int dx[12]={1,1,2,2,2,2,-1,-1,-2,-2,-2,-2};
int dy[12]={-2,2,-2,-1,1,2,-2,2,-1,1,-2,2};
queue<node>q;
int bfs(int x,int y){
	q.push((node){x,y,0});
	vis[x][y]=1;
	while(!q.empty()){
		node nd=q.front();
		q.pop();
		for(int i=0;i<12;i++){
			int zx=nd.x+dx[i];
			int zy=nd.y+dy[i];
			if(zx>=1 && zy>=1 && zx<=50 && zy<=50 && !vis[zx][zy]){
				q.push((node){zx,zy,nd.c+1});
				vis[zx][zy]=1;
			} 
			if(zx==x && zy==y) return nd.c+1;
		}
	}
}
int main(){
	cin>>xx>>yy;
	cout<<bfs(1,1)<<endl;
	memset(vis,0,sizeof vis);
	while(!q.empty()) q.pop();
	cin>>xx>>yy;
	cout<<bfs(1,1);
	return 0;
}
2025/7/29 20:02
加载中...