全超时了
查看原帖
全超时了
349906
封禁用户楼主2020/6/25 13:45
#include<iostream>
#include<algorithm>
using namespace std;
bool vis[22][22];
int bx, by, mx, my;
int fx[8] = {-2, -1, 1, 2, 2, 1, -1, -2 };
int fy[8] = {1, 2, 2, 1, -1, -2, -2, -1 };
int f[22][22];
int main()
{
	cin >> bx >> by >> mx >> my;
	for (int i = 0; i <=bx; i++)
	{
		for (int j = 0; j <= by; j++)
		{
			vis[i][j] = true;
			for (int k = 0; k < 8; i++)
			{
				if (bx + fx[k] == mx && by + fy[k] == my)
				{
					vis[i][j] = false;
				}
			}
		}
	}
	f[2][2] = 1;
	for (int i = 2; i <= bx+2; i++)
	{
		for (int j = 2; j <= by+2; j++)
		{
			if(vis[i-2][j-2])
			{
				f[i][j] = max(f[i][j], f[i - 1][j] + f[i][j - 1]);
			}
		}
	}
	cout << f[bx + 2][by + 2];
	

}
2020/6/25 13:45
加载中...