求助,50分,哪里错了呜呜
  • 板块P1605 迷宫
  • 楼主young020202
  • 当前回复1
  • 已保存回复1
  • 发布时间2024/3/4 20:29
  • 上次更新2024/3/4 22:18:34
查看原帖
求助,50分,哪里错了呜呜
1252709
young020202楼主2024/3/4 20:29
#include<iostream>
#include<queue>
using namespace std;
struct node{
	int x,y;
};
int mp[10][10],visit[10][10];//mp记录障碍,visit记录走过 
int N,M,T;
int sx,sy,fx,fy;
int sum=0;
int dx[]={0,0,-1,1};
int dy[]={1,-1,0,0};
queue<node>q;
void bfs(node s)
{
	q.push(s);
	while(!q.empty())
	{
		node t=q.front();
		q.pop();
		for(int i=0;i<4;i++)
		{
			int a=t.x+dx[i],b=t.y+dy[i];
			if(a<1||a>N||b<1||b>M||mp[a][b]||visit[a][b])	
				continue;
			if(a==fx&&b==fx)
			{
				sum++;continue;
			}
			node w;
			w.x=a;w.y=b;
			visit[a][b]=1;
			q.push(w);
			
		}
	}
}
int main()
{
	cin>>N>>M>>T;
	cin>>sx>>sy>>fx>>fy;
	for(int i=1;i<=T;i++)
	{
		int u,v;
		cin>>u>>v;
		mp[u][v]=1;
	}
	node start;
	start.x=sx;start.y=sy;
	visit[sx][sy]=1;
	bfs(start);
	cout<<sum;
}
2024/3/4 20:29
加载中...