为什么dfs过不了,有tle和wa,请问有大佬看看吗
查看原帖
为什么dfs过不了,有tle和wa,请问有大佬看看吗
787602
Tachikawa_Ruri楼主2023/2/20 08:57
# include<bits/stdc++.h>
using namespace std;
int x,y,n,m,sum=0;
int a[22][22],dx[8]={-2,-1,1,2,2,1,-1,-2},dy[8]={-1,-2,-2,-1,1,2,2,1},dx1[2]={1,0},dy1[2]={0,1};
void dfs(int x,int y)
{
	if(x==n&&y==m)
	{
		sum++;
		return;
	}
	for(int i=0;i<2;i++)
	{
		int x1=x+dx1[i],y1=dy1[i]+y;
		if(x1<0||y1<0||x1>n||y1>m||a[x1][y1]==1) continue;
		dfs(x1,y1);
	}
}
int main()
{
	cin>>n>>m>>x>>y;
	a[x][y]=1;
	for(int i=0;i<8;i++)
	{
		if((x+dx[i]>=0&&x+dx[i]<=n)&&(y+dy[i]>=0&&y+dy[i]<=m))
		a[x+dx[i]][y+dy[i]]=1;
	}
	dfs(0,0);
	cout<<sum;
 } 
2023/2/20 08:57
加载中...