社区讨论

大佬求带,为什么程序显示无法从b中读取数据

P1002[NOIP 2002 普及组] 过河卒参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@lo7uh4s7
此快照首次捕获于
2023/10/27 07:57
2 年前
此快照最后确认于
2023/10/27 07:57
2 年前
查看原帖
C
#include<cstdio>
using namespace std;
int main() {
	long long a[25][25];
	long long b[25][25];
	int c, d, e, f;
	scanf("%d %d %d %d", &e, &f, &c, &d);
	a[c][d] = 1;
	if (c > 1 && d != 0) a[c - 2][d - 1] = 1;
	if (c > 1 && d != 20) a[c - 2][d + 1] = 1;
	if (c < 19 && d != 0) a[c + 2][d - 1] = 1;
	if (c <19 && d != 20) a[c + 2][d + 1] = 1;
	if (c != 0 && d > 1) a[c - 1][d - 2] = 1;
	if (c != 0 && d != 20) a[c - 1][d + 2] = 1;
	if (c != 20 && d > 1) a[c + 1][d - 2] = 1;
	if (c != 20 && d < 19) a[c + 1][d + 2] = 1;
	for (int i = 0; i < e; i++) {
		for (int k = 0; k < f; k++) {
			if (a[i][k] != 1) {
				if (i == 0 && k == 0) 
					b[0][0] = 1;
				else if (i == 0 && k != 0) 
					b[0][k] = b[0][k-1]; 
				else if (i != 0 && k == 0) 
					b[i][0] = b[i - 1][0];
				else  
					b[i][k] = b[i - 1][k]+b[i][k-1];
			}
		}
	}
	printf("%lld\n", b[e][f]);
	return 0;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...