#40分求助!
查看原帖
#40分求助!
796686
CSY123321楼主2022/10/4 21:41
#include <stdio.h>
int n, m, Mx, My;
int f[21][21];
void dfs(int x, int y);
int main()
{
	int i,j;
	scanf_s("%d %d %d %d", &n, &m, &Mx, &My);
	for (i = 0; i <= 20; i++)
	{
		f[i][0] = 1;
		f[0][i] = 1;
	}
	for (j = 1; j <= m; j++)
		dfs(1,j);
	printf("%d", f[n][m]);
}
void dfs(int x, int y)
{
	if ((x == Mx && y == My) || (x == Mx + 2 && y == My + 1) || (x == Mx + 1 && y == My + 2) || (x == Mx - 1 && y == My + 2) || (x == Mx - 2 && y == My + 1) || (x == Mx - 2 && y == My - 1) || (x == Mx - 1 && y == My - 2) || (x == Mx + 1 && y == My - 2) || (x == Mx + 2 && y == My - 1))
	{
		f[x][y] = 0;
		dfs(x + 1, y);
		return;
	}
	if (x > n )
		return;
	f[x][y] = f[x - 1][y] + f[x][y - 1];
	dfs(x + 1, y);
}
2022/10/4 21:41
加载中...