C++的AC了 想写一段python的 不知道为什么没过 C++:
#include <iostream>
using namespace std;
long long dp[100][100], n, m, x, y;
bool a[100][100];
int main() {
cin >> n >> m >> x >> y;
n += 2; m += 2; x += 2; y += 2;
dp[2][2] = 1;
a[x][y] = true;
a[x - 2][y - 1] = a[x - 2][y + 1] = a[x - 1][y + 2] = a[x + 1][y + 2] = true;
a[x + 2][y + 1] = a[x + 2][y - 1] = a[x + 1][y - 2] = a[x - 1][y - 2] = true;
for (int i = 2; i <= n; i++) {
for (int j = 2; j <= m; j++) {
if ((i != 2 || j != 2) && !a[i][j]) dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
}
cout << dp[n][m];
return 0;
}
python(没过):
a=[[0 for i in range(105)]for j in range(105)]
dp=[[0 for i in range(105)]for j in range(105)]
n,m,x,y=input("").split(" ")
n=int(n)+2
m=int(m)+2
x=int(x)+2
y=int(y)+2
dp[2][2]=1
a[x][y]=1
a[x-2][y+1]=a[x+2][y+1]=a[x-2][y-1]=a[x+2][y-1]=1
a[x-1][y-2]=a[x+1][y-2]=a[x-1][y+2]=a[x+1][y+2]=1
for i in range(2,n+1):
for j in range(2,m+1):
if ((i!=2 or j!=2) and a[i][j]==0):
dp[i][j]=dp[i-1][j]+dp[i][j-i]
print(dp[n][m])
求大佬挑错指点,谢谢!