我也错3 4```
#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,xx[15],yy[15];
int jieguo[25][25];
int in(int x,int y)
{
for (int i = 0;i < 9;i ++)
if (xx[i] == x && yy[i] == y)
return 1;
return 0;
}
int jisuan(int x,int y)
{
if (x == n && y == m)
return 1;
if (jieguo[x][y] != 0)
return jieguo[x][y];
if (in(x,y))
return 0;
if (x > n || y > m)
return 0;
jieguo[x][y] = jisuan(x + 1,y) + jisuan(x,y + 1);
return jieguo[x][y];
}
int main()
{
cin >> n >> m >> a >> b;
xx[0] = a;xx[1] = a + 1;xx[2] = a + 2;xx[3] = a + 1;xx[4] = a + 2;xx[5] = a - 1;xx[6] = a - 2;xx[7] = a - 1;xx[8] = a - 2;
yy[0] = b;yy[1] = b + 2;yy[2] = b + 1;yy[3] = b - 2;yy[4] = b - 1;yy[5] = b + 2;yy[6] = b + 1;yy[7] = b - 2;yy[8] = b - 1;
cout << jisuan(0,0);
return 0;
}
```
by zhr756812943 @ 2024-01-21 09:18:50
上面给错了```cpp
#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,xx[15],yy[15];
int jieguo[25][25];
int in(int x,int y)
{
for (int i = 0;i < 9;i ++)
if (xx[i] == x && yy[i] == y)
return 1;
return 0;
}
int jisuan(int x,int y)
{
if (x == n && y == m)
return 1;
if (jieguo[x][y] != 0)
return jieguo[x][y];
if (in(x,y))
return 0;
if (x > n || y > m)
return 0;
jieguo[x][y] = jisuan(x + 1,y) + jisuan(x,y + 1);
return jieguo[x][y];
}
int main()
{
cin >> n >> m >> a >> b;
xx[0] = a;xx[1] = a + 1;xx[2] = a + 2;xx[3] = a + 1;xx[4] = a + 2;xx[5] = a - 1;xx[6] = a - 2;xx[7] = a - 1;xx[8] = a - 2;
yy[0] = b;yy[1] = b + 2;yy[2] = b + 1;yy[3] = b - 2;yy[4] = b - 1;yy[5] = b + 2;yy[6] = b + 1;yy[7] = b - 2;yy[8] = b - 1;
cout << jisuan(0,0);
return 0;
}
```
by zhr756812943 @ 2024-01-21 09:20:41
@[zhr756812943](/user/1040258) WA 3 4是因为数据范围开小了,需要把int开成long long
by fzy1139950253 @ 2024-01-21 15:39:52
开long long 啊
by small_keyboard @ 2024-01-21 17:30:50