60pts 大佬求调
查看原帖
60pts 大佬求调
962167
kirito57110楼主2023/11/15 22:18
第三个和第四个测试点wa掉了,输出比正确答案大一些
#include <iostream>
#include <algorithm>
#include <cstring>

using namespace std;

const int N = 25;
int n, m;//终点 
int x, y;//马的坐标 
long long f[N][N]; 
int dx[9] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
int dy[9] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
int g[N][N];

int main()
{
	cin >> n >> m >> x >> y;
	
	for(int i = 0; i <= n; i ++) f[i][0] = 1;
	for(int i = 0; i <= m; i ++) f[0][i] = 1;
	
	for(int i = 0; i < 9; i ++)
	{
		int a = x + dx[i], b = y + dy[i];
		if(a < 0 || a > n || b < 0 || b > m) continue;
		g[a][b] = 1, f[a][b] = 0;
	}
	
	for(int i = 1; i <= n; i ++)
		for(int j = 1; j <= m; j ++)
			if(!g[i][j]) f[i][j] = f[i - 1][j] + f[i][j - 1];
	
		
	cout << f[n][m] << endl;
	
	return 0;
}
2023/11/15 22:18
加载中...