为什么我的程序dfs运行不了?
查看原帖
为什么我的程序dfs运行不了?
206436
csy_zjm_xj楼主2021/8/16 15:33
#include<bits/stdc++.h>
using namespace std;
long long a,b,c,d,ans=0;
long long vis[21][21]={0};
long long f[8][2]={{-2,-1},{-1,-2},{1,-2},{-2,1},{1,2},{2,1},{-1,2},{2,-1}};
void Dfs(long long x,long long y)
{
	if(x==a&&y==b) 
	{
		ans++;
		return ;
	}
	for(int i=0;i<8;i++)
	{
		int x1=x+f[i][0];
		int y1=y+f[i][1];
		if(vis[x1][y1]==1||x1<1||y1<1||x1>a||y1>b) continue;
		vis[x1][y1]=1;
		Dfs(x1,y1);
		vis[x1][y1]=0;
	}
	return ;
}
int main()
{
	cin>>a>>b>>c>>d;
	vis[c][d]=1;
	Dfs(c,d);
	cout<<ans;
	return 0;
}
2021/8/16 15:33
加载中...