为什么在本地运行正确,但在洛谷ide上运行错误,洛谷P1002 过河卒
我的代码
#include<iostream>
using namespace std;
void dp(int n, int m, int Mx, int My)
{
//初始化马的控制点
long long board[21][21];
board[My][Mx] = 0;
if (My + 2 <= 20 && Mx + 1 <= 20)//防越界
{
board[My + 2][Mx + 1] = 0;//P1
}
if (My + 1 <= 20 && Mx + 2 <= 20)
{
board[My + 1][Mx + 2] = 0;//P2
}
if (My - 1 >= 0 && Mx + 2 <= 20)
{
board[My - 1][Mx + 2] = 0;//P3
}
if (My - 2 <= 20 && Mx + 1 <= 20)
{
board[My - 2][Mx + 1] = 0;//P4
}
if (My - 2 <= 20 && Mx - 1 <= 20)
{
board[My - 2][Mx - 1] = 0;//P5
}
if (My - 1 <= 20 && Mx - 2 <= 20)
{
board[My - 1][Mx - 2] = 0;//P6
}
if (My + 1 <= 20 && Mx - 2 <= 20)
{
board[My + 1][Mx - 2] = 0;//P7
}
if (My + 2 <= 20 && Mx - 1 <= 20)
{
board[My + 2][Mx - 1] = 0;//P8
}
for (int i = 0; i <= m; i++)//给棋盘每个位置赋值卒到该格有几条路
{
for (int j = 0; j <= n; j++)
{
if (board[i][j] != 0 && (i == 0 || j == 0))
board[i][j] = 1;
else if (board[i][j] != 0)
board[i][j] = board[i - 1][j] + board[i][j - 1];
}
}
cout << board[m][n];
}
int main()
{
int n, m, Mx, My;
cin >> n >> m >> Mx >> My;
dp(n, m, Mx, My);
return 0;
}