这段代码提交至 P1002 时第一个点 RE 了。有趣的是,当我在 DEVC++ 中运行时能够输出正确答案。
#include<bits/stdc++.h>
#define maxn 30
using namespace std;
int n,m,x,y,i,j;
bool mp[maxn][maxn];
long long dp[maxn][maxn];
int jx[8]={2,1,-1,-2,-2,-1,1,2};
int jy[8]={1,2,2,1,-1,-2,-2,-1};
int main(){
cin>>n>>m>>x>>y;
mp[x][y]=true;
for(i=0;i<8;i++){
if(x+jx[i]>=0&&x+jx[i]<=n&&y+jy[i]>=0&&y+jy[i]<=m)
mp[x+jx[i]][y+jy[i]]=true;
}
i=0;
while(!mp[0][i]){
dp[0][i]=1;
i++;
}
i=0;
while(!mp[i][0]){
dp[i][0]=1;
i++;
}
for(i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(!mp[i][j]) dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
cout<<dp[n][m];
return 0;
}