初学,大佬们帮看看这个思路有什么问题,输不出来
查看原帖
初学,大佬们帮看看这个思路有什么问题,输不出来
501785
逍遥九霄楼主2021/8/20 15:01
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<stdio.h>
#include<cstdlib>
#include<algorithm>
using namespace std;
long long x3,y3,x2,y2,ans;
int a[101][101];
void dfs(int d,int p)
{
	if(d==x3&&p==y3)
	{
		ans++;
		return;
	}
	if(a[d+1][p]==0)
	{
		a[d+1][p]=1;
		dfs(d+1,p);
		a[d+1][p]=0;
	}
	if(a[d][p+1]==0)
	{
		a[d][p+1]=1;
		dfs(d,p+1);
		a[d][p+1]=0;
	}
	return;
}
int main()
{
	cin>>x3>>y3>>x2>>y2;
	if(x2>1)
	{
		if(y2>0)
		a[x2-2][y2-1]=2;
		a[x2-2][y2+1]=2;
	}
	if(y2>1)
	{
		if(x2>0)
		a[x2-1][y2-2]=2;
		a[x2+1][y2-2]=2;
	}
	if(x2>0)
	a[x2-1][y2+2]=2;
	if(y2>0)
	a[y2-1][x2+2]=2;
	a[x2+2][y2+1]=2;
	a[x2+1][y2+2]=2;
	dfs(0,0);
	cout<<ans<<endl;
	return 0;
} 
2021/8/20 15:01
加载中...