社区讨论

大神们,帮忙看看哪里错了

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

讨论操作

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

当前回复
3 条
当前快照
1 份
快照标识符
@lo8joimu
此快照首次捕获于
2023/10/27 19:43
2 年前
此快照最后确认于
2023/10/27 19:43
2 年前
查看原帖
CPP
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;

int xi[9] = { 0,-2,-1,1,2,2,1,-1,-2 };
int yi[9] = { 0,1,2,2,1,-1,-2,-2,-1 };
long long a[21][21];
long long f[21][21];
long long n, m;
long long x, y;

int main()
{
	cin >> n >> m >> x >> y;

	for (int i = 0; i <= 8; i++)
	{
		int xx;
		int yy;
		xx = x + xi[i];
		yy = y + yi[i];
		f[xx][yy] = 1;
	}

	a[0][0] = 1;

	for (int i = 1; i <= n; i++)
	{
		if (f[i][0] == 0)
		{
			a[i][0] = 1;
		}
		else
		{
			break;
		}
	}

	for (int i = 1; i <= n; i++)
	{
		if (f[i][0] == 0)
		{
			a[i][0] = 1;
		}
		else
		{
			break;
		}
	}

	for (int i = 1; i <= m; i++)
	{
		if (f[0][i] == 0)
		{
			a[0][i] = 1;
		}
		else
		{
			break;
		}
	}

	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			if (f[i][j] == 0)
			{
				a[i][j] = a[i - 1][j] + a[i][j - 1];
			}
		}
	}

	cout << a[n][m];
	return 0;
}

回复

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

正在加载回复...