0分
```
#include<bits/stdc++.h>
using namespace std;
long long f[100][100];
int s1,s2,n,m;
int main(){
scanf("%d%d%d%d",&s1,&s2,&n,&m);
s1++;
s2++;
for(int i=1;i<=s1;i++) f[i][1]=1;
for(int i=1;i<=s2;i++) f[1][i]=1;
for(int i=1;i<=s1;i++)
for(int j=1;j<=s2;j++)
{
if(!f[i][j])
{
f[i][j]=f[i][j-1]+f[i-1][j];
if(i==n&&j==m) f[i][j]=0;
if((i+2==n||i-2==n)&&(j+1==m||j-1==m)) f[i][j]=0;
if((i+1==n||i-1==n)&&(j+2==m||j-2==m)) f[i][j]=0;
}
}
printf("%lld",f[s1][s2]);
return 0;
}
```
by 星梦童趣Doxitce @ 2019-06-12 23:56:34
40分
```
#include<bits/stdc++.h>
using namespace std;
long long f[100][100];
int s1,s2,n,m;
int main(){
scanf("%d%d%d%d",&s1,&s2,&n,&m);
for(int i=0;i<=s1;i++) f[i][0]=1;
for(int i=0;i<=s2;i++) f[0][i]=1;
for(int i=0;i<=s1;i++)
for(int j=0;j<=s2;j++)
{
if(!f[i][j])
{
f[i][j]=f[i][j-1]+f[i-1][j];
if(i==n&&j==m) f[i][j]=0;
if((i+2==n||i-2==n)&&(j+1==m||j-1==m)) f[i][j]=0;
if((i+1==n||i-1==n)&&(j+2==m||j-2==m)) f[i][j]=0;
}
}
printf("%lld",f[s1][s2]);
return 0;
}
```
by 星梦童趣Doxitce @ 2019-06-13 00:01:23
@[星梦童趣Doxitce](/space/show?uid=26603) f[0][i]和f[i][0]可能是马的控制点,你把它初始化成一后没有再判断
~~而且你交换了n,m,s1,s2~~
by littleKtian @ 2019-06-13 13:03:00
@[速算王李子](/space/show?uid=104581) orz
by 星梦童趣Doxitce @ 2019-06-18 19:09:47
@[速算王李子](/space/show?uid=104581) 60分
```
#include<bits/stdc++.h>
using namespace std;
long long f[100][100];
int s1,s2,n,m;
int main(){
scanf("%d%d%d%d",&s1,&s2,&n,&m);
for(int i=0;i<=s1;i++) f[i][0]=1;
for(int i=0;i<=s2;i++) f[0][i]=1;
for(int i=0;i<=s1;i++)
for(int j=0;j<=s2;j++)
{
if(!f[i][j]) f[i][j]=f[i][j-1]+f[i-1][j];
if(i==n&&j==m) f[i][j]=0;
if((i+2==n||i-2==n)&&(j+1==m||j-1==m)) f[i][j]=0;
if((i+1==n||i-1==n)&&(j+2==m||j-2==m)) f[i][j]=0;
}
printf("%lld",f[s1][s2]);
return 0;
}
```
by 星梦童趣Doxitce @ 2019-06-18 19:14:19
@[星梦童趣Doxitce](/space/show?uid=26603) 如果f[i][0]是控制点,后面的f[i+1][0],f[i+2][0]......f[s1][0]都是0
by littleKtian @ 2019-06-19 12:00:08
100分
```
#include<bits/stdc++.h>
using namespace std;
long long f[100][100];
int s1,s2,n,m;
int main(){
scanf("%d%d%d%d",&s1,&s2,&n,&m);
for(int i=0;i<=s1;i++)
{
if(m==0&&i==n) break;
if(m==1&&(i+2==n||i-2==n)) break;
if(m==2&&(i+1==n||i-1==n)) break;
f[i][0]=1;
}
for(int i=0;i<=s2;i++)
{
if(n==0&&i==m) break;
if(n==2&&(i+1==m||i-1==m)) break;
if(n==1&&(i+2==m||i-2==m)) break;
f[0][i]=1;
}
for(int i=0;i<=s1;i++)
for(int j=0;j<=s2;j++)
{
if(i!=0&&j!=0) f[i][j]=f[i][j-1]+f[i-1][j];
if(i==n&&j==m) f[i][j]=0;
if((i+2==n||i-2==n)&&(j+1==m||j-1==m)) f[i][j]=0;
if((i+1==n||i-1==n)&&(j+2==m||j-2==m)) f[i][j]=0;
}
printf("%lld",f[s1][s2]);
return 0;
}
```
by 星梦童趣Doxitce @ 2019-06-22 15:39:52
@[星梦童趣Doxitce](/space/show?uid=26603)
###### 变量要用int吧
by YuanZhan @ 2019-06-29 12:55:15