求助,60分,第1个和第5个测试点过不去.
查看原帖
求助,60分,第1个和第5个测试点过不去.
1027116
Ohuoo楼主2023/6/27 12:45
#include <stdio.h>
//P1002 [NOIP2002 普及组] 过河卒

int n, m;
int hx, hy;
const int fx[] = {0, -2, -1, 1, 2, 2, 1, -1, -2};
const int fy[] = {0, 1, 2, 2, 1, -1, -2, -2, -1};
int s[40][40];
long long f[40][40];

int able() {
	for(int i = 0; i <= 8; i++) {
		s[fx[i] + hx][fy[i] + hy] = 1;
	}
	return 1;
}

int main() {
	scanf("%d %d", &m, &n);
	scanf("%d %d", &hx, &hy);
	m += 2;
	n += 2;
	hx += 2;
	hy += 2;
	able();
	f[2][1] = 1;
	for(int i = 2; i <= m; i++) {
		for(int j = 2; j <= n; j++) {
			if(s[i][j] == 1) {
				continue;
			}
			f[i][j] = f[i - 1][j] + f[i][j - 1];
		}
	}
//	for(int i = 2; i <= m; i++) {
//		for(int j = 2; j <= n; j++) {
//			printf("%lld ", f[i][j]);
//		}
//		printf("\n");
//	}
	printf("%lld", f[n][m]);
	return 0;
}
2023/6/27 12:45
加载中...