本地能AC,但是洛谷过不了,求条
查看原帖
本地能AC,但是洛谷过不了,求条
1384934
ZTengW楼主2025/1/19 21:42

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=105;
struct node
{
	int x,y,dis,num;
}g[N][N];
int n,sx,sy,ex,ey;
int dx[]={0,0,1,-1};
int dy[]={1,-1,0,0};
void bfs(int x,int y)
{
	queue<node> q;
	g[x][y].dis=0;
	q.push(g[x][y]);
	while(!q.empty())
	{
		node cur=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			int tx=cur.x+dx[i],ty=cur.y+dy[i];
			if(tx>=1&&tx<=n&&ty>=1&&ty<=n&&g[tx][ty].num==0&&g[tx][ty].dis==-1)
			{
				g[tx][ty].dis=cur.dis+1;
				if(tx==ex&&ty==ey)
				{
					cout<<g[tx][ty].dis;
					exit(0);
				}
				q.push(g[tx][ty]);
			}
		}
	}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=n;j++)
		{
			cin>>g[i][j].num;
			g[i][j].x=i;
			g[i][j].y=j;
			g[i][j].dis=-1;
		}
	cin>>sx>>sy>>ex>>ey;
	bfs(sx,sy);
	return 0;
 }
2025/1/19 21:42
加载中...