(禁止抄袭),求关注
查看原帖
(禁止抄袭),求关注
1112097
quchengxuan666楼主2024/9/27 23:05

提供思路: { int m, n, a, b;

cin >> m >> n >> a >> b;

m += 100;
n += 100;
a += 100;
b += 100;

bool flag[125][125] = {0};

flag[a][b] = 1;

// for (int i = -3; i < 4; i++) // { // for (int j = -3; j < 4; j++) // { // int n1 = abs(i), n2 = abs(j); // if ((n1 + n2 == 3)&&(max(n1, n2) == 2)&&(max(a+i,b+j)>-1)) // arr[a + i][b + j] = -1; // } // } flag[a+2][b+1] = 1; flag[a+1][b+2] = 1; flag[a-1][b+2] = 1; flag[a-2][b+1] = 1; flag[a-2][b-1] = 1; flag[a-1][b-2] = 1; flag[a+1][b-2] = 1; flag[a+2][b-1] = 1;

long long arr[125][125] = {0};

for (int i = 100; i < m + 1; i++) 
{
	if (flag[i][100] == 0)
	{
		arr[i][100] = 1;
	}
	else 
	{
		break;
	}
}
for (int i = 100; i < n + 1; i++) 
{
	if (flag[100][i] == 0)
	{
		arr[100][i] = 1;
	}
	else 
	{
		break;
	}
}

for (int i = 101; i < m + 1; i++)
{
	for (int j = 101; j < n + 1; j++)
	{
		if (flag[i][j] != 1)
		{

// if (i > 0 && j > 0) arr[i][j] = arr[i - 1][j] + arr[i][j - 1]; // else // arr[i][j] = 1; } }

}
cout << arr[m][n];

}

2024/9/27 23:05
加载中...