用dfs TLE 7个点!求助!!!
查看原帖
用dfs TLE 7个点!求助!!!
826774
Little_Fox_Fairy楼主2023/7/23 14:09

这是代码:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int fx[5]={0,0,0,1,-1},fy[5]={0,1,-1,0,0};
char a[101][101];
bool vis[101][101];
void dfs(int x,int y)
{
	if (x==n&&y==m)
	{
		cout<<"Yes";
		exit(0);
	}
	for (int i=1;i<=4;i++)
	{
		int dx=fx[i]+x;
		int dy=fy[i]+y;
		if (dx>=1&&dx<=n&&dy>=1&&dy<=m&&!vis[dx][dy]&&a[dx][dy]!='#')
		{
			vis[dx][dy]=1;
			dfs(dx,dy);
			vis[dx][dy]=0;
		}
	}
	return ;
}
int main()
{
	ios::sync_with_stdio(0);
	cin>>n>>m;
	for (int i=1;i<=n;i++)
	{
		string s;
		cin>>s;
		for (int j=1;j<=m;j++)
		  a[i][j]=s[j-1];
	}
	vis[1][1]=1;
	dfs(1,1);
	cout<<"No";
	return 0;
}

用 bfs AC了,但 dfs 为什么会超时呢?

2023/7/23 14:09
加载中...