过河卒求助
  • 板块题目总版
  • 楼主molly1212
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/8/16 17:52
  • 上次更新2024/8/16 21:12:02
查看原帖
过河卒求助
556017
molly1212楼主2024/8/16 17:52

为什么运行完结果总是不对?

#include <bits/stdc++.h>
using namespace std;
long long n,m,a,b,f[25][25],q[25][25];
int dx[9] = {0,1,1,2,2,-1,-1,-2,-2};
int dy[9] = {0,2,-2,1,-2,2,-2,1,-2};
int main()
{
	cin >> n >> m >> a >> b;
	f[0][0] = 1;
	for (int i = 0;i < 9;i++)
	{
		int ux = a+dx[i],uy = b+dy[i];
		if (ux < 0 || uy < 0 || ux > n || uy > m) continue;
		q[ux][uy] = 1;
		if (ux == 0 && uy == 0)
		{
			cout << 0 << endl;
			return 0;
		}
	}
	for (int i = 0;i <= n;i++)
	{
		for (int j = 0;j <= m;j++)
		{
			if (q[i][j]) continue;
			if (i != 0) f[i][j] += f[i-1][j];
			if (j != 0) f[i][j] += f[i][j-1];
		}
	}
	cout << f[n][m] << endl;
	return 0;
}
2024/8/16 17:52
加载中...