求助,为啥样例为零
查看原帖
求助,为啥样例为零
1378206
GOlize楼主2024/10/1 16:45
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=27;
int a[N][N];
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==x&&fy==y){
	 	road++;
	 	return;
	}
	for (int i=0;i<=1;i++){
		int tx,ty;
		tx=x+dxz[i];
		ty=y+dxz[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,ay;
		ax=sx+dxm[i];
		ay=sy+dxm[i];
		a[ax][ay]=0;
	}
	dfs(0,0);
	cout<<road;
	return 0;
}
2024/10/1 16:45
加载中...