过河卒

#include<string>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long LL;
typedef pair<int, int> PII;
#define x first
#define y second
const int N = 110;
LL f[N][N];
int dx[] = {0, 1}, dy[] = {1, 0};
PII m, b;
int ans = 0;
int check(PII s) {
	if (s.x == m.x && s.y == m.y)return false;
	if (s.x == m.x - 2 && s.y == m.y - 1 )return false;
	if (s.x == m.x + 2 && s.y == m.y - 1 )return false;
	if (s.x == m.x + 2 && s.y == m.y + 1 )return false;
	if (s.x == m.x - 2 && s.y == m.y + 1 )return false;
	if (s.x == m.x - 1 && s.y == m.y - 2 )return false;
	if (s.x == m.x + 1 && s.y == m.y - 2 )return false;
	if (s.x == m.x + 1 && s.y == m.y + 2 )return false;
	if (s.x == m.x - 1 && s.y == m.y + 2 )return false;
	return true;
}
int main() {
	cin >> b.x >> b.y >> m.x >> m.y;
	f[0][0] = 1;
    for(int i = 0; i <= b.x; i ++)
    {
		for(int j = 0; j <= b.y; j ++)
		{
			if(check({i,j}))
			{
				if(i > 0)f[i][j] = f[ i - 1][j];
				if(j > 0)f[i][j] += f[i][j - 1];
			}
		}
	}
	cout << f[b.x][b.y] << endl;
}

链接

全部评论

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务