抱歉贴错了
```c++
#include <bits/stdc++.h>
using namespace std;
int a[30][30];
int n,m,x,y;
bool house(int i,int j){
if(i==x and j==y)return 0;
if(i==x+1 and j==y+2)return 0;
if(i==x+1 and j==y-2)return 0;
if(i==x+2 and j==y+1)return 0;
if(i==x+2 and j==y-1)return 0;
if(i==x-1 and j==y+2)return 0;
if(i==x-1 and j==y-2)return 0;
if(i==x-2 and j==y+1)return 0;
if(i==x-2 and j==y-1)return 0;
return 1;
}
int main(){
cin>>n>>m>>x>>y;
for(int i=0;i<n;i++){
a[i][0]=1;
}
for(int i=0;i<m;i++){
a[0][i]=1;
}
for(int i=1;i<n;i++){
for(int j=1;j<m;j++){
if(!house(i,j)){
a[i][j]=0;
continue;
}
a[i][j]=a[i][j-1]+a[i-1][j];
}
}
cout<<a[n][m];
}
```
by bzdss @ 2023-07-30 20:50:37
对不起我是弱智
i<n和j<m应改为i<=n和j<=m
by bzdss @ 2023-07-30 20:57:07
寄,40分
by bzdss @ 2023-07-30 21:00:32
继续求助
by bzdss @ 2023-07-30 21:00:48
下载数据改了之后0分了
```
#include <bits/stdc++.h>
using namespace std;
int a[30][30];
int n,m,mx,my;
bool house(int i,int j){
int x[8]={1,1,2,2,-1,-1,-2,-2};
int y[8]={2,-2,1,-1,2,-2,1,-1};
if(i==mx and j==my)return 0;
for(int k=0;k<8;k++){
if(i==mx+x[k] and j==my+y[k])return 0;
}
return 1;
}
int main(){
cin>>n>>m>>mx>>my;
for(int i=0;i<=n;i++){
a[i][0]=1;
}
for(int i=0;i<=m;i++){
a[0][i]=1;
}
for(int i=0;i<=n;i++){
for(int j=1;j<=m;j++){
if(!house(i,j)){
a[i][j]=0;
continue;
}
a[i][j]=a[i][j-1]+a[i-1][j];
}
}
cout<<a[n][m]<<endl;
// for(int i=0;i<=n;i++){
// for(int j=0;j<=m;j++){
// cout<<a[i][j]<<' ';
// }
// cout<<endl;
// }
}
by bzdss @ 2023-08-01 20:30:16
下载数据是对的
by bzdss @ 2023-08-01 20:31:04