0分求助
查看原帖
0分求助
915232
gzy123456楼主2023/7/21 15:23
#include <iostream>
#include <cstdio>

using namespace std;
    int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
    int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
    int bx, by, mx, my;
    long long mp[40][40];
    bool f[40][40]; 
int main()
{
    cin >> bx >> by >> mx >> my;
    bx += 2; 
	by += 2;
	mx += 2;
	my += 2;
    for (int i=0; i<=8; i++)
    {
    	int mjx = mx + fx[i];
    	int mjy = my + fy[i];
    	f[mjx][mjy] = 1;
	}
	
	for (int i=1; i<=by; i++)  
	{
		if (f[1][i] == 1)
		   break;
		mp[1][i] = 1;
	}
	
	for (int i=1; i<=bx; i++)  
	{
		if (f[i][1] == 1)
		   break;
		mp[i][1] = 1;
	}
	
	for (int i=2; i<=bx; i++)
	{
		for (int j=2; j<=by; j++)
		{
			if (f[i][j] == 1)
				mp[i][j] = 0;
			else
			    mp[i][j] = (mp[i-1][j] + mp[i][j-1]);
		}
	}
	
	cout << mp[bx][by];
    return 0;
} 
2023/7/21 15:23
加载中...