dfs,矩阵障碍最短路径错了
  • 板块题目总版
  • 楼主Sam_Gamer
  • 当前回复2
  • 已保存回复2
  • 发布时间2023/10/20 21:37
  • 上次更新2023/11/2 12:23:49
查看原帖
dfs,矩阵障碍最短路径错了
793067
Sam_Gamer楼主2023/10/20 21:37

mei ti mu!!!

#include<bits/stdc++.h>
int m,n;
char a[35][35];
int sx,sy,fx,fy,mini=2e9;
using namespace std;
int fs[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
void dfs(int x,int y,int step)
{
	int inx,iny;
	if(x==fx && x==fy)
	{
		mini=min(step,mini);
		
		return;
	}
	for(int i=0;i<4;i++)
	{
		inx=x+fs[i][0];
		iny=y+fs[i][1];
		
	}
	if(x<0 || x>fx-1 || y<0 || y>fy-1)
	{
		return;
	}
	if(a[inx][iny]!='*' && a[inx][iny]!='1')
	{
		a[inx][iny]='1';
		dfs(inx,iny,step+1);
		a[inx][iny]='0';
	}
	return;
}
int main()
{
    cin>>m>>n;
    for(int i=0;i<m;i++)
    {
    	for(int j=0;j<n;j++)
    	{
    		cin>>a[i][j];
    	}
    }
    cin>>sx>>sy>>fx>>fy;
	a[sx][sy]='1';
	dfs(sx,sy,0);
	cout<<mini;
	return 0;	
	
}
2023/10/20 21:37
加载中...