蒟蒻初学dfs求调
查看原帖
蒟蒻初学dfs求调
1378206
GOlize楼主2024/10/11 14:54
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=27;
int a[N][N]={1};
int v[N][N];
int dxm[8]={2,1,-1,-2,-2,-1,1,2};
int dym[8]={1,2,2,1,-1,-2,-2,-1};
int dxz[2]={0,1};
int dyz[2]={1,0};
int sx,sy,fx,fy;
int road=0;
void dfs(int x,int y){
	if (fx==sx&&fy==sy){
	 	road++;
	 	return;
	}
	for (int i=0;i<=1;i++){
		int tx=0,ty=0;
		tx=x+dxz[i];
		ty=y+dyz[i];
		if (a[tx][ty]==1&&v[tx][ty]==0){
			v[x][y]=1;
			dfs(tx,ty);
			v[x][y]=0;
		}
	}
}
signed main(){
	cin>>fx>>fy>>sx>>sy;
//	if (fx==0&&fy==0&&sx==0&&sy==0){
//		cout<<0;
//		return 0;
//	}
	a[sx][sy]=0;
	for (int i=0;i<=7;i++){
		int ax=0,ay=0;
		ax=sx+dxm[i];
		ay=sy+dym[i];
		a[ax][ay]=0;
	}
	dfs(0,0);
	cout<<road;
	return 0;
}
2024/10/11 14:54
加载中...