@[23_VS_24](/user/867681) 这道题牵扯数组过界,所以将处理数据加 2 防止过界即可
by wunaidedanjuan @ 2023-08-27 15:02:41
@[23_VS_24](/user/867681) 微调代码如下:
```cpp
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y;
long long f[24][24]={0};
long long ctrl[24][24];
int d[9][2]={{0,0},{1,2},{1,-2},{-1,2},{-1,-2},{2,1},{2,-1},{-2,1},{-2,-1}};
int main()
{
cin>>n>>m>>x>>y;
n+=2;
m+=2;
x+=2;
y+=2;
for(int i=0;i<9;i++){
int tmpx=x+d[i][0],tmpy=y+d[i][1];
if(tmpx>=0&&tmpx<=n&&tmpx>=0&&tmpy<=m) ctrl[tmpx][tmpy]=1;
}
// f[0][0]=1-ctrl[0][0];
f[2][1]=1;
for(int i=2;i<=n;i++){
for(int j=2;j<=m;j++){
if(ctrl[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];
return 0;
}
```
by wunaidedanjuan @ 2023-08-27 15:03:31
@[wunaidedanjuan](/user/951032) **谢谢大犇!!!**
by 23_VS_24 @ 2023-08-27 15:04:17