40分求调
查看原帖
40分求调
1803776
sunhaochen2009楼主2025/7/24 10:31
#include <bits/stdc++.h>
using namespace std;
int k,b,tot;
int a[200][200];
void fkdfs(int x,int y)
{
	if(x>k||y>b)
	{
		return;
	}
	if(x==k&&y==b)
	{
		tot++;
		return;
	}
	for(int i=1;i<=4;i++)
	{
		if(i==1&&x+2<=k&&y+1<=b&&a[x+2][y+1]==0)
		{
			a[x+2][y+1]=1;
			fkdfs(x+2,y+1);
			a[x+2][y+1]=0;
		}
		if(i==2&&x+1<=k&&y+2<=b&&a[x+1][y+2]==0)
		{
			a[x+1][y+2]=1;
			fkdfs(x+1,y+2);
			a[x+1][y+2]=0;
		}
		if(i==3&&x+2<=k&&y-1>=0&&a[x+2][y-1]==0)
		{
			a[x+2][y-1]=1;
			fkdfs(x+2,y-1);
			a[x+2][y-1]=0;
		}
		if(i==4&&x+1<=k&&y-2>=0&&a[x+1][y-2]==0)
		{
			a[x+1][y-2]=1;
			fkdfs(x+1,y-2);
			a[x+1][y-2]=0;
		}
	}
	return;
}
int main()
{
	cin>>k>>b;
	fkdfs(0,0);
	cout<<tot;
}
2025/7/24 10:31
加载中...